Simultaneous video streaming across multiple channels

ABSTRACT

Methods and systems for a media controller subsystem that can provide video streaming using a distributed network control server, media server, and virtual network console on a common processing or circuit board and filter and apply restrictions to media content based on one or more of the identity of the vehicle occupant requesting media content, the identity of a portable computational device associated with the vehicle occupant, and the spatial location of the vehicle occupant and/or remote computational device.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims priority to U.S.patent application Ser. No. 14/253,334, filed Apr. 15, 2014, of the sametitle, which claims the benefits of and priority, under 35 U.S.C.§119(e), to U.S. Provisional Application Ser. No. 61/811,981, filed onApr. 15, 2013, entitled “Functional Specification for a Next GenerationAutomobile”; 61/865,954, filed on Aug. 14, 2013, entitled “GestureControl of Vehicle Features”; 61/870,698, filed on Aug. 27, 2013,entitled “Gesture Control and User Profiles Associated with VehicleFeatures”; 61/891,217, filed on Oct. 15, 2013, entitled “Gesture Controland User Profiles Associated with Vehicle Features”; 61/904,205, filedon Nov. 14, 2013, entitled “Gesture Control and User Profiles Associatedwith Vehicle Features”; 61/924,572, filed on Jan. 7, 2014, entitled“Gesture Control and User Profiles Associated with Vehicle Features”;and 61/926,749, filed on Jan. 13, 2014, entitled “Method and System forProviding Infotainment in a Vehicle.” The entire disclosures of theapplications listed above are hereby incorporated by reference, in theirentirety, for all that they teach and for all purposes.

This application is also related to U.S. patent application Ser. No.13/420,236, filed on Mar. 14, 2012, entitled, “Configurable VehicleConsole”; Ser. No. 13/420,240, filed on Mar. 14, 2012, entitled“Removable, Configurable Vehicle Console”; Ser. No. 13/462,593, filed onMay 2, 2012, entitled “Configurable Dash Display”; Ser. No. 13/462,596,filed on May 2, 2012, entitled “Configurable Heads-Up Dash Display”;Ser. No. 13/679,459, filed on Nov. 16, 2012, entitled “VehicleComprising Multi-Operating System”; Ser. No. 13/679,234, filed on Nov.16, 2012, entitled “Gesture Recognition for On-Board Display”; Ser. No.13/679,412, filed on Nov. 16, 2012, entitled “Vehicle Application Storefor Console”; Ser. No. 13/679,857, filed on Nov. 16, 2012, entitled“Sharing Applications/Media Between Car and Phone (Hydroid)”; Ser. No.13/679,878, filed on Nov. 16, 2012, entitled “In-Cloud Connection forCar Multimedia”; Ser. No. 13/679,875, filed on Nov. 16, 2012, entitled“Music Streaming”; Ser. No. 13/679,676, filed on Nov. 16, 2012, entitled“Control of Device Features Based on Vehicle State”; Ser. No.13/678,673, filed on Nov. 16, 2012, entitled “Insurance Tracking”; Ser.No. 13/678,691, filed on Nov. 16, 2012, entitled “Law Breaking/BehaviorSensor”; Ser. No. 13/678,699, filed on Nov. 16, 2012, entitled“Etiquette Suggestion”; Ser. No. 13/678,710, filed on Nov. 16, 2012,entitled “Parking Space Finder Based on Parking Meter Data”; Ser. No.13/678,722, filed on Nov. 16, 2012, entitled “Parking Meter ExpiredAlert”; Ser. No. 13/678,726, filed on Nov. 16, 2012, entitled “ObjectSensing (Pedestrian Avoidance/Accident Avoidance)”; Ser. No. 13/678,735,filed on Nov. 16, 2012, entitled “Proximity Warning Relative to OtherCars”; Ser. No. 13/678,745, filed on Nov. 16, 2012, entitled “StreetSide Sensors”; Ser. No. 13/678,753, filed on Nov. 16, 2012, entitled“Car Location”; Ser. No. 13/679,441, filed on Nov. 16, 2012, entitled“Universal Bus in the Car”; Ser. No. 13/679,864, filed on Nov. 16, 2012,entitled “Mobile Hot Spot/Router/Application Share Site or Network”;Ser. No. 13/679,815, filed on Nov. 16, 2012, entitled “Universal ConsoleChassis for the Car”; Ser. No. 13/679,476, filed on Nov. 16, 2012,entitled “Vehicle Middleware”; Ser. No. 13/679,306, filed on Nov. 16,2012, entitled “Method and System for Vehicle Data Collection RegardingTraffic”; Ser. No. 13/679,369, filed on Nov. 16, 2012, entitled “Methodand System for Vehicle Data Collection”; Ser. No. 13/679,680, filed onNov. 16, 2012, entitled “Communications Based on Vehicle Diagnostics andIndications”; Ser. No. 13/679,443, filed on Nov. 16, 2012, entitled“Method and System for Maintaining and Reporting Vehicle OccupantInformation”; Ser. No. 13/678,762, filed on Nov. 16, 2012, entitled“Behavioral Tracking and Vehicle Applications”; Ser. No. 13/679,292,filed Nov. 16, 2012, entitled “Branding of Electrically PropelledVehicles Via the Generation of Specific Operating Output”; Ser. No.13/679,400, filed Nov. 16, 2012, entitled “Vehicle Climate Control”;Ser. No. 13/840,240, filed on Mar. 15, 2013, entitled “Controller AreaNetwork Bus”; Ser. No. 13/678,773, filed on Nov. 16, 2012, entitled“Location Information Exchange Between Vehicle and Device”; Ser. No.13/679,887, filed on Nov. 16, 2012, entitled “In Car CommunicationBetween Devices”; Ser. No. 13/679,842, filed on Nov. 16, 2012, entitled“Configurable Hardware Unit for Car Systems”; Ser. No. 13/679,204, filedon Nov. 16, 2012, entitled “Feature Recognition for Configuring aVehicle Console and Associated Devices”; Ser. No. 13/679,350, filed onNov. 16, 2012, entitled “Configurable Vehicle Console”; Ser. No.13/679,358, filed on Nov. 16, 2012, entitled “Configurable DashDisplay”; Ser. No. 13/679,363, filed on Nov. 16, 2012, entitled“Configurable Heads-Up Dash Display”; and Ser. No. 13/679,368, filed onNov. 16, 2012, entitled “Removable, Configurable Vehicle Console”. Theentire disclosures of the applications listed above are herebyincorporated by reference, in their entirety, for all that they teachand for all purposes.

BACKGROUND

Whether using private, commercial, or public transport, the movement ofpeople and/or cargo has become a major industry. In today'sinterconnected world, daily travel is essential to engaging in commerce.Commuting to and from work can account for a significant portion of atraveler's day. As a result, vehicle manufacturers have begun to focuson making this commute, and other journeys, more enjoyable.

Currently, vehicle manufacturers attempt to entice travelers to use aspecific conveyance based on any number of features. Most of thesefeatures focus on vehicle safety or efficiency. From the addition ofsafety-restraints, air-bags, and warning systems to more efficientengines, motors, and designs, the vehicle industry has worked to appeasethe supposed needs of the traveler. Recently, however, vehiclemanufactures have shifted their focus to user and passenger comfort as aprimary concern. Making an individual more comfortable while travelinginstills confidence and pleasure in using a given vehicle, increasing anindividual's preference for a given manufacturer and/or vehicle type.

One way to instill comfort in a vehicle is to create an environmentwithin the vehicle similar to that of an individual's home. Integratingfeatures in a vehicle that are associated with comfort found in anindividual's home can ease a traveler's transition from home to vehicle.Several manufacturers have added comfort features in vehicles such asthe following: leather seats, adaptive and/or personal climate controlsystems, music and media players, ergonomic controls, and, in somecases, Internet connectivity. However, because these manufacturers haveadded features to a conveyance, they have built comfort around a vehicleand failed to build a vehicle around comfort.

SUMMARY

There is a need for a vehicle ecosystem, which can integrate bothphysical and mental comforts, while seamlessly communicating withcurrent electronic devices to result in a totally intuitive andimmersive user experience. These and other needs are addressed by thevarious aspects, embodiments, and/or configurations of the presentdisclosure. Also, while the disclosure is presented in terms ofexemplary and optional embodiments, it should be appreciated thatindividual aspects of the disclosure can be separately claimed.

A method can be provided by the present disclosure that includes thesteps of:

providing, in a vehicle, first and second operating systems executing ona common microprocessor, wherein the first operating system comprisesone or more applications performing a critical vehicle task, function,and/or operation and the second operating system comprises one or moreapplications performing an infotainment task, function, and/oroperation;

collecting, by a computer control module, one or more metrics regardingan operation of the first and/or second operating system and/or computerand/or a network in communication with the computer;

determining, by the computer control module, whether the collected oneor metrics are normal and/or abnormal; and

when the collected one or metrics is not normal or abnormal, shuttingdown the second operating system but not the first operating system.

In a vehicle, first and second operating systems can execute on a commonmicroprocessor, the first operating system can comprise one or moreapplications performing a critical vehicle task, function, and/oroperation and the second operating system can comprise one or moreapplications performing an infotainment task, function, and/oroperation, and a tangible and non-transient computer readable medium inthe vehicle can include microprocessor executable and readableinstructions that, when executed by the microprocessor, can performoperations including:

collecting, by a computer control module, one or more metrics regardingan operation of the first and/or second operating system and/or anetwork in communication with the computer;

determining, by the computer control module, whether the collected oneor metrics of one or more of the first and/or second operating systemand/or a network in communication with the computer are normal and/orabnormal; and

applying one or more of the following rules:

when the collected one or metrics associated with the first operatingsystem is not normal or abnormal, shutting down the first and secondoperating systems;

when the collected one or metrics associated with the second operatingsystem is not normal or abnormal, shutting down the second, but not thefirst, operating system; and

when the collected one or metrics associated with the network is notnormal or abnormal, shutting down the second, but not the first,operating system.

A vehicle can include:

a first computer having a first operating system executing one or moreapplications performing a critical vehicle task, function, and/oroperation; and

a second computer having a different second operating system executingone or more applications performing at least one of an infotainmenttask, function, and/or operation and less critical task, function,and/or operation, wherein at least one of the following can be true:

(a) a computer control module collects one or more metrics regarding anoperation of the first and/or second computers and/or a network incommunication with the first and/or second computer, determines whetherthe collected one or metrics regarding an operation of the first and/orsecond computers and/or network are normal and/or abnormal, and applyone or more of the following rules:

when the collected one or metrics associated with the first operatingsystem is not normal or abnormal, shutting down the first and secondoperating systems;

when the collected one or metrics associated with the second operatingsystem is not normal or abnormal, shutting down the second, but not thefirst, operating system; and

when the collected one or metrics associated with the network is notnormal or abnormal, shutting down the second, but not the first,operating system; and

(b) the first and second computers are configured to be incapable ofcommunicating with each other.

Each member of the set of critical vehicle tasks, functions, and/oroperations can be different from each member of the set of infotainmenttasks, functions, and/or operations, whereby the union of the two setsis null.

The critical task, function or operation can be one or more ofmonitoring, controlling, and/or operating the ECU, TCU, door settings,window settings, and/or blind spot monitor, monitoring, controlling,and/or operating the safety equipment, monitoring and/or controllingcertain critical sensors such as the power source controller and energyoutput sensor, engine temperature, oil pressure sensing, hydraulicpressure sensors, sensors for headlight and other lights, vehiclecontrol system sensors, and/or steering/torque sensor, controlling theoperation of the engine, head light control unit, power steering,display panel, switch state control unit, power control unit, and/orbrake control unit, and/or issuing alerts to a user and/or remotemonitoring entity of potential problems with a vehicle operation.

The infotainment task, function or operation can be one or more ofreceiving, processing, and/or providing media and/or multimedia content.

The first operating system can be simulated by a first virtual machineand the second operating system by a second virtual machine and thecomputer control module can be in or configured as a hypervisor module.

The first and second operating systems can concurrently andindependently run on a common kernel.

A first requirement applied to the first operating system to determineabnormal operation can be different from a second requirement applied tothe second operating system to determine abnormal operation.

The present disclosure can include a method, vehicle, and/or tangibleand non-transient computer readable medium comprising the steps,operations, and/or functions of:

(a) determining, by a microprocessor executable device discovery daemon,that a computational device is connected to or attempting to connect toa network and/or communication subsystem of a vehicle;

(b) in response, determining, by the device discovery daemon, whetherthe computational device is located within a predetermined area and/orzone of the vehicle; and

(c) applying, by the device discovery daemon, at least the followingrules:

(C1) when the computational device is located within the predeterminedarea and/or zone of the vehicle, permitting the computational device toaccess or attempt to access the vehicle network and/or communicationsubsystem; and

(C2) when the computational device is not located within thepredetermined area and/or zone of the vehicle, not permitting thecomputational device to access or attempt to access the vehicle networkand/or communication subsystem.

A type of the computational device can determine a specificpredetermined area and/or zone of the vehicle, from among a plurality ofpredetermined areas and/or zones, to be used in applying the rules.

The computational device can be one or more of a tablet computer,laptop, smart phone, and personal digital assistant.

The specific predetermined area and/or zone of the vehicle can be atleast part of the passenger compartment.

The device discovery daemon can perform sub-steps of step (a) including:

receiving, by the device discovery daemon, information from an on boardvehicle sensor that a new occupant has entered the vehicle;

in response to the receipt of the information, emitting, by the devicediscovery daemon, a ping to discover the computational device; and

when a responsive signal is received from the computational device,determining, by the device discovery daemon, that the computationaldevice is attempting to connect to a network and/or communicationsubsystem of a vehicle.

The determining step/operation/function (b) can base the determinationon whether the computational device is located within the predeterminedarea and/or zone of the vehicle on one or more of signal strength of asignal from the computational device as received by an access point ofthe vehicle, a received satellite-based position of the computationaldevice, triangulation based on relative received signal strengths of asignal from the computational device as received by multiple accesspoints of the vehicle, image processing of images of the predeterminedarea and/or zone, occupant presence and/or location information receivedby an on board vehicle sensor, whether the computational device isattempting to connect to the network and/or communication subsystemwirelessly or by hard wire connection, whether the computational devicehas moved relative to a selected access point during a defined timeinterval, whether the received signal strength of signaling from thecomputational device at a selected access point varies temporally, atype or service of the computational device, and input received from auser of the computational device.

When the computational device is determined to be located within thepredetermined area and/or zone of the vehicle and is permitted to accessor attempt to access the vehicle network and/or communication subsystemand wherein the device discovery daemon can determine a set of tasks,functions, and/or operations that can be performed and a set of tasks,functions, and/or operations that cannot be performed based on thedetermined location of the computational device.

The device discovery daemon can determine a level of confidence that thecomputational device is located within the predetermined area and/orzone and wherein the device discovery daemon determines that thecomputational device is located within the predetermined area and/orzone when the level of confidence has at least a threshold value.

A method, vehicle, and/or computer executable instructions can beprovided that perform at least the following steps, operations, andfunctions:

(a) determining, by a microprocessor executable media controllersubsystem, that a user is driving a vehicle; and

(b) in response, the microprocessor executable media controllersubsystem performing one or more of the following steps:

(i) removing a video channel but not an audio channel from media contentto be displayed on a screen associated with the user;

(ii) applying screen magnification to content displayed on the screenassociated with the user;

(iii) reconfiguring the screen and/or content to provide a large fontand/or icon size for the displayed content compared to the displayedcontent when the user is not driving the vehicle;

(iv) removing unnecessary animations from the content to be displayed onthe screen;

(v) removing background images from, while leaving at least oneforeground image in, the content to be displayed on the screen;

(vi) compared to the displayed content when the user is not driving thevehicle, reconfiguring the screen and/or content to provide highercontrast to make the displayed content more visible to the user;

(vii) initiating a screen reader to audibly describe currently displayedcontent to the user;

(viii) compared to the period for notification dialog boxes to remainopen on the screen when the user is not driving the vehicle, enabling alonger period for notification dialog boxes to remain open on thescreen;

(ix) changing the color and/or transparency of window borders on thedisplayed content;

(x) changing the thickness of a focus rectangle around a currentlyselected object in a dialog box displayed on the screen;

(xi) changing the color, size and/or thickness of an on-screen mousepointer displayed on the screen;

(xii) changing a keyboard setting of a keyboard displayed on the screen;

(xiii) formatting a web page, in the content to be displayed,differently from the web page format received from a web server;

(xiv) compared to the size of a mouse-selectable screen object when theuser is not driving the vehicle, increasing a size of a mouse-selectablescreen object to provide a larger target;

(xv) enabling mouse keys to move the mouse cursor on the screen;

(xvi) enabling one or more of sticky keys, toggle keys, and filter keys;and

(xvii) enabling the screen to receive input written by the user's fingeras an inputted command or request.

The user can be determined to be driving the vehicle when the user isdetermined to be in a driver's seat of the vehicle.

The user can be determined to be driving the vehicle when the vehicle isat least one of in gear and in motion.

The method/vehicle/instructions can further perform the following steps,operations, and functions:

(c) determining, by the media controller subsystem, that the user is nolonger driving the vehicle; and

(d) in response to step (c), the media controller subsystem performingone or more of the following steps:

(i) no longer removing a video channel from media content to bedisplayed;

(ii) no longer applying screen magnification to content to be displayed;

(iii) reconfiguring the display to provide a smaller font and/or iconsize for the content to be displayed compared to the font and/or iconsize used when the user is driving the vehicle;

(iv) no longer removing unnecessary animations from the content to bedisplayed;

(v) no longer removing background images from the content to bedisplayed;

(vi) reconfiguring the screen to provide lower contrast compared to thecontrast used when the user is driving the vehicle;

(vii) disabling the screen reader;

(viii) compared to the period for notification dialog boxes to remainopen on the screen when the user is driving the vehicle, enabling ashorter period for notification dialog boxes to remain open on thescreen;

(ix) compared to the color and/or transparency of window borders on thedisplayed content when the user is driving the vehicle changing thecolor and/or transparency of window borders on the displayed content;

(x) compared to the thickness of a focus rectangle around a currentlyselected object in a dialog box displayed on the screen color and/ortransparency of window borders on the displayed content when the user isdriving the vehicle, changing the thickness of a focus rectangle arounda currently selected object in a dialog box displayed on the screen;

(xi) compared to the color, size and/or thickness of an on-screen mousepointer displayed on the screen when the user is driving the vehicle,changing the color, size and/or thickness of an on-screen mouse pointerdisplayed on the screen;

(xii) compared to the keyboard setting of a keyboard displayed on thescreen when the user is driving the vehicle, changing a keyboard settingof a keyboard displayed on the screen;

(xiii) no longer formatting a web page, in the content to be displayed,differently from the web page format received from a web server;

(xiv) compared to the size of a mouse-selectable screen object when theuser is driving the vehicle, decreasing a size of a mouse-selectablescreen object to provide a larger target;

(xv) disabling mouse keys to move the mouse cursor on the screen;

(xvi) disabling the one or more of sticky keys, toggle keys, and filterkeys; and

(xvii) disabling the screen to receive input written by the user'sfinger as an inputted command or request.

The user can be determined not to be driving the vehicle when thevehicle is at least one of not in gear, parked, and not in motion.

The user can be determined to be in a driver's seat of the vehicle whenthe user is located within a predetermined area and/or zone.

The determining step (a) can base the determination on whether the useris located within the predetermined area and/or zone of the vehicle onone or more of signal strength of a signal from a computational deviceassociated with the user as received by an access point of the vehicle,a received satellite-based position of the computational device,triangulation based on relative received signal strengths of a signalfrom the computational device as received by multiple access points ofthe vehicle, image processing of images of the predetermined area and/orzone, user presence and/or location information received by an on boardvehicle sensor, and input received from a user of the computationaldevice.

A media controller subsystem can include:

a microprocessor executable distributed network control server operableto access selected content on a public network external to a vehiclecomprising the media controller subsystem, the distributed networkcontrol server having at least one of an assigned Internet Protocoladdress and global unicast address;

a microprocessor executable media server operable to receive requestsfor content from a vehicle occupant and provide requested content to aportable computational device associated with the vehicle occupant, themedia server having a contactable electronic address on a local areanetwork maintained by the vehicle;

a microprocessor readable memory to store content; and

a microprocessor executable virtual network console operable to providethe computational device with remote access to the media server.

The distributed network control server, media server, and virtualnetwork console can be on a common media processing board mounted on thevehicle.

The portable computational device can be discrete from, remote from, andin wireless communication with the media processing board.

The virtual network console can operate in accordance with the RemoteFrame Buffer protocol on top of the TCP/IP suite of protocols, therebycausing the remote computational device to appear to a computer mountedin the vehicle as if the remote computational device is part of the onboard vehicle control system comprising the computer.

The vehicle occupant, through the remote computational device, cancontrol one or more of the following media presentation features of ascreen and sound system mounted on the vehicle: volume, contrast,resolution, and channel selection.

A method, vehicle, and instructions can perform at least the followingsteps, operations, and functions:

(a) determining, by a microprocessor executable media server, at leastone of an identity of a vehicle occupant requesting media content, anidentity of a portable computational device associated with the vehicleoccupant, and a spatial location of the vehicle occupant and/or remotecomputational device;

(b) based on the at least one of the identity of the vehicle occupantrequesting media content, the identity of a portable computationaldevice associated with the vehicle occupant, and the spatial location ofthe vehicle occupant and/or remote computational device, applying, bythe microprocessor executable media server, at least one of a filter andrestriction to the requested media content to form filtered and/orpermitted media content to be provided to the portable computationaldevice; and

(c) providing, by a microprocessor executable media server, the filteredand/or permitted media content to the portable computational device.

The portable computational device can be discrete from, remote from, andin wireless communication with the media processing board.

The filter and/or restriction can be applied to a media request of thevehicle occupant before and/or after the requested media content isaccessed.

The filter and/or restriction can be one or more of an age-relatedcontent filter and/or restriction, a vehicle occupant seating locationfilter and/or restriction, and a privacy filter and/or restriction.

A method, vehicle, and tangible and non-transient computer readablemedium can be provided to perform steps, operations, and functions,including:

(a) receiving a request from a vehicle occupant to perform a vehicletask, function and/or operation;

(b) determining that the vehicle occupant has been authenticatedsuccessfully;

(c) accessing an account for the vehicle occupant, the account definingrights and privileges of the user with respect to controlling a vehicletask, function and/or operation;

(d) determining at least one of an area and/or zone occupied by thevehicle occupant and an operating state of the vehicle; and

(e) based upon the account corresponding to the vehicle occupant and theat least one of an area and/or zone occupied by the vehicle occupant andan operating state of the vehicle, applying the following rules:

(i) when the account permits the vehicle occupant to perform therequested vehicle task, function and/or operation, performing or causingto be performed the vehicle task, function, and/or operation; and

(ii) when the account does not permit the vehicle occupant to performthe requested vehicle task, function and/or operation, not performing orcausing to be performed the vehicle task, function, and/or operation.

In step, operation, or function (e), a microprocessor executable vehiclecontrol system can apply the rules based on the account corresponding tothe vehicle occupant and the area and/or zone occupied by the vehicleoccupant. Then vehicle occupant can perform a first set of vehicletasks, functions and operations when in a first area and/or zone and adifferent set of vehicle tasks, functions, and operations when in adifferent second area and/or zone.

In step, operation, or function (e), the microprocessor executablevehicle control system can apply the rules based on the accountcorresponding to the vehicle occupant and the operating state of thevehicle. The vehicle occupant can perform a first set of vehicle tasks,functions and operations when the vehicle is in a first operating stateand a different set of vehicle tasks, functions, and operations when thevehicle is in a second operating state.

When rule (i) applies, the vehicle occupant can control the requestedvehicle task, function and/or operation using one or more of a cellphone, laptop, tablet computer, and personal digital assistant.

A different authentication procedure can be used for the vehicleoccupant when requesting a first set of vehicle tasks, operations, andfunctions than when requesting a second set of vehicle tasks,operations, and functions.

The account can include rights and privileges for the vehicle occupantwith respect to a vehicle task, function or operation, security and/orauthentication requirements and/or credentials for the vehicle occupant,and personal settings of the vehicle occupant.

The personal settings of the vehicle occupant can include a plurality ofa seat setting, climate control setting, lighting setting, configurationof an instrument cluster on a screen, rear view mirror setting, drivingmode, media channel setting or preset, media delivery preference, musicgenre preference, scheduled program, playlist, synchronization withcloud-based data associated with the vehicle occupant,application-specific personalization and selections, and a displaysetting and configuration.

A method/vehicle/computer readable instructions can perform at least thefollowing steps/operations/functions:

(a) detecting, by a microprocessor executable media controllersubsystem, a change in state of a vehicle, a driver of the vehiclehaving a graphical user interface on board and/or in communication witha computer network controlled by computer on board the vehicle;

(b) in response, reconfiguring, by the media controller subsystem, thegraphical user interface by at least one of the following actions toreduce driver distraction and/or make content displayed by the graphicaluser interface more visible to the driver:

apply screen magnification to at least part of the content displayed onthe graphical user interface;

render at least part of the displayed content in a larger font and/oricon size;

initiate a screen reader to audibly provide and/or describe at leastpart of the displayed content to the driver;

initiate haptic feedback to provide and/or describe at least part of thedisplayed content to the driver;

disable unnecessary animation effects from at least a part of thedisplayed content;

remove a background image from while leaving a foreground image in atleast part of the displayed content;

enable a longer period for notification dialog boxes to remain open inthe displayed content;

enable a longer contact period of a digit of the driver to select aselectable object in the displayed content;

disable automatic arrangement of windows when a mouse cursor is moved toan edge of the displayed content;

enable activate a window in at least part of the displayed content byhovering over the window with a mouse cursor;

enable keyboard web page navigation in the displayed content;

enable a high contrast between text and a background color in at leastpart of the displayed content;

change a color and transparency of a border of a window in at least partof the displayed content;

change a thickness of a focus rectangle around a currently selected itemin a dialog box in the displayed content;

change a color, size, and/or thickness of an on-screen mouse pointer inthe displayed content;

change a keyboard setting displayed in the displayed content and/or incommunication with the displayed content;

ignore a color, font style, font size, and/or format of a web page ofthe displayed content in accordance with a predetermined style sheet;

increase a size of a selectable object in at least part of the displayedcontent;

enable blind typing on the graphical user interface; and

remove one or more selectable objects from the displayed content.

A method/vehicle/computer readable instructions can perform at least thefollowing steps/operations/functions:

(a) mapping, by a microprocessor executable media controller subsystem,a graphical user interface on board and/or in communication with acomputer network controlled by computer on board the vehicle with asegmented control surface, whereby each segment corresponds to an itemof content displayed on the graphical user interface;

(b) tracking, by a microprocessor executable media controller subsystem,a position of a body part of a user on the control surface relative tothe control surface segments;

(c) determining, by a microprocessor executable media controllersubsystem, that the body part of the user is located on a first segment;and

(d) in response, at least one of providing displayed contentcorresponding to the first segment and selecting a selectable objectcorresponding to the first segment.

The control surface can be electrically, magnetically, andelectromagnetically nonresponsive to contact of the user's body part.

The control surface can be optically nonresponsive to contact of theuser's body part.

The control surface can be part of an arm rest and/or dashboard andwherein the graphical user interface is virtual and not displayed to theuser.

The control surface can be part of an arm rest and/or dashboard andwherein the graphical user interface is displayed to the user on ascreen on board the vehicle.

A method/vehicle/computer readable instructions can perform at least thefollowing steps/operations/functions:

(a) determining, by a vehicle control system, that a vehicle occupanthas an impairment; and

(b) in response, altering a communication interface of the vehicle toaccommodate the impairment.

The impairment can be one or more of a vision impairment, hearingimpairment, dexterity impairment, mobility impairment, languageimpairment, and communication impairment.

The communication interface can be a screen on board the vehicle.

The location of the vehicle occupant and the screen corresponding to thedetermined occupant location can be determined.

The alteration can be one or more of:

apply screen magnification to at least part of the content displayed onthe screen;

render at least part of the displayed content in a larger font and/oricon size;

initiate a screen reader to audibly provide and/or describe at leastpart of the displayed content to the occupant;

initiate haptic feedback to provide and/or describe at least part of thedisplayed content to the occupant;

disable unnecessary animation effects from at least a part of thedisplayed content;

remove a background image from while leaving a foreground image in atleast part of the displayed content;

enable a longer period for notification dialog boxes to remain open inthe displayed content;

enable a longer contact period of a digit of the occupant to select aselectable object in the displayed content;

disable automatic arrangement of windows when a mouse cursor is moved toan edge of the displayed content;

enable activate a window in at least part of the displayed content byhovering over the window with a mouse cursor;

enable keyboard web page navigation in the displayed content;

enable a high contrast between text and a background color in at leastpart of the displayed content;

change a color and transparency of a border of a window in at least partof the displayed content;

change a thickness of a focus rectangle around a currently selected itemin a dialog box in the displayed content;

change a color, size, and/or thickness of an on-screen mouse pointer inthe displayed content;

change a keyboard setting displayed in the displayed content and/or incommunication with the displayed content;

ignore a color, font style, font size, and/or format of a web page ofthe displayed content in accordance with a predetermined style sheet;

increase a size of a selectable object in at least part of the displayedcontent;

enable blind typing on the graphical user interface;

enable text and/or a visual alternative to an audio channel associatedwith the displayed content;

increase a volume setting of the audio channel;

change a sound provided by the audio channel;

enable sign language interpretation;

enable a text phone application;

change a setting of a mouse associated with the displayed content; and

remove one or more selectable objects from the displayed content.

A method/vehicle/computer readable instructions can perform at least thefollowing steps/operations/functions:

(a) sensing, by a vehicle control system, a sound from a source externalto a vehicle;

(b) identifying, by the vehicle control system, a type and/or source ofthe sound;

(c) based on the identifying step, notifying a driver of the vehicle ofthe type and/or source of the sound.

The notification can be one or more of a visual notification, an audiblenotification, and a haptic notification.

The notification can be an audible notification.

The audible notification can be one or more of a portion of thefrequency range of the received sound, a frequency shifted portion ofthe received sound, and a phase shifted portion of the sound.

A method/vehicle/computer readable instructions can perform at least thefollowing step/operation/function:

altering, by a vehicle control system, an interface of a vehicle basedon one or more of a user impairment, user medical condition, user age,user physical condition, user driving characteristic and drivinghistory.

The interface can be one or more of a steering wheel, pedal, a graphicaluser interface, and a setting and/or configuration of an automatedvehicle response system.

The automated vehicle response system can be a collision avoidancesystem.

A method/vehicle/computer readable instructions can perform at least thefollowing step/operation/function:

maintaining a persona of a vehicle occupant; and

based on the persona of the vehicle occupant and vehicle-relatedinformation, perform an action assisting the vehicle occupant.

the vehicle-related information comprises at least one of a currentand/or future vehicle location and path of vehicle travel.

The action performed can depend on a seating position of the vehicleoccupant.

The persona can include one or more of bioinformatics, medicalinformation, driving history, personal information, private information,travel information, and Internet browsing history and/or browsedcontent.

The vehicle related information can include one or more of vehiclecontext, state, external surroundings, location, past, current, and/orintended path of travel, waypoint, and destination.

The action can be one or more of making an appointment, making areservation, purchasing an item on line, adding a waypoint ordestination to path of travel on a navigation system of the vehicle,adding an entry into the occupant's electronic calendar, changing adestination or path of travel on the navigation system, warning theoccupant, notifying the occupant, and sending a message to a person at awaypoint or destination of the vehicle regarding an arrival time.

The steps/functions/operations can determine relevant information otherthan the persona of the vehicle occupant and the vehicle-relatedinformation.

The relevant information can include one or more of a persona of aselected person not currently in the vehicle, a message from a friend orfamily member of the vehicle occupant, a current activity of the friendand/or family member, a location, hours of operation, and/or descriptiveinformation about a point and/or location of interest near the vehicleand/or the vehicle's path of travel, a location, hours of operation,and/or descriptive information about a vehicle service facility near thevehicle and/or the vehicle's path of travel, a location, hours ofoperation, and/or descriptive information about a hotel and/or motelnear the vehicle and/or the vehicle's path of travel, a current locationof the friend or family member near the vehicle and/or the vehicle'spath of travel, and a road condition along a path of travel of thevehicle.

The vehicle can obtain the persona from one or more of a differentvehicle driven by the occupant and a home computer.

The vehicle can synchronize with the different vehicle and/or homecomputer when the vehicle is parked in proximity thereto and an ignitionof the vehicle is turned off.

The maintaining of the persona can include collecting information fromone or more vehicle sensors and/or from a remote information source.

A type of information collected can depend on a seating position of theoccupant.

The type of information collected can depend on one or more of anidentity of the occupant, an age of the occupant, and an association ofthe occupant with the vehicle.

The persona can be defined in a format (e.g., grammar, syntax, and/orsemantics) that can be processed by vehicles of different manufacturers.

A vehicle backplane assembly can include at least the followingcomponents:

A plurality of blade processors in a vehicle that includes a first setof blade processors installed prior to vehicle sale and not modifiableand/or replaceable by the vehicle owner and a second set of bladeprocessors installable after vehicle sale and is modifiable and/orreplaceable by the vehicle owner. Each blade processor includes amicroprocessor, a memory, and a network interface and each of the bladeprocessors performing a different set of functions.

The restricted access by the customer to the first set of bladeprocessors can be done through restrictions on software rights andprivileges (e.g., read only rights and privileges to machine code withno right or privilege to modify same) and physical access to the firstset of blade processors (e.g., through a locked housing containing oneor more components of the blade processors).

The assembly can include a third set of blade processors that interfaceswith the first and second set of blade processors to provide input toand/or receive output from a corresponding one of the first and secondblade processors.

A satellite receiving system can be a member of the third set of bladeprocessors and a navigation system a member of one of the first andsecond set of blade processors.

Each of the first and second sets of blade processors can include acorresponding Universal Serial Bus (“USB”) hub, the USB hub comprising aplurality of ports to permit devices to connect to the USB hub.

The first set of blades can include a master blade processor operable toinventory hardware and/or software in communication with the backplaneassembly, assign blade processors to applications attempting to execute,and/or determine a health state of a selected the blade processor.

A vehicle can include a plurality of blade processors, each bladeprocessor performing a function that is at least one of a vehicle task,function, or operation and an infotainment task, function, or operation.

The blade processors can have a backplane.

The backplane can have a first communication zone defining a trustednetwork within the vehicle to connect with trusted computational devicesand/or module provided or certified by the vehicle manufacturer but notuntrusted computational devices and/or modules provided by vehicleoccupants. Whether or not a computational device and/or module iscertified by a manufacturer can be determined using known license checkprocedures, such as a unique identifier, a unique credential (e.g.,password or encrypted or unencrypted key), and the like. When the checkis completed satisfactorily (e.g., the unique identifier or a uniquecredential (e.g., password or encrypted or unencrypted key) provided bythe device and/or module matches a stored identifier in the memory ofthe vehicle control system (or master blade processor)), thecomputational device and/or module is deemed to be certified by themanufacturer. When the check is not completed satisfactorily, thecomputational device and/or module is not deemed to be certified by themanufacturer.

The backplane can have a second communication zone defining an untrustednetwork to connect with the untrusted computational devices.

The backplane can have a third communication zone providing power anddata transmission to the plurality of blade processors.

The first and second communication zones can be connected logically onopposing sides of a firewall blade processor.

A master blade processor can enable a connection to a computationaldevice connected to the first communication zone upon verification thatthe connected computational device is certified by a vehiclemanufacturer.

The first and second communication zones can be configured as separateEthernet switches. The first and second communication zones aretypically not in signal communication with one another.

A firewall can have a dedicated slot that bridges the first and secondcommunication zones and uses the third communication zone for powerconnections.

An output of each of the plurality of blade processors can be an IPmessage framed into an Ethernet packet.

A sensor and/or controller of the vehicle can communicate by a Car AreaNetwork (“CAN”) protocol. An Ethernet bus controller can terminate a CANbus to the sensor and/or controller and a CAN Ethernet controllersubsystem can translate an Ethernet message from a blade processor to aCAN protocol-based message.

The plurality of blade processors can be configured as a crate havingthe backplane connector and on-backplane Ethernet interfaces enablingthe blade processors to communicate with one another using Ethernetmessages.

A vehicle can include a plurality of blade processors, each bladeprocessor performing a function that is at least one of a vehicle task,function, or operation and an infotainment task, function, or operation.The plurality of blade processors can include a master blade processoroperable to assign a component and/or module requiring a blade processorfor execution to a selected blade processor.

The master blade processor can inventory hardware and softwarecapabilities of components and/or modules in communication with themaster blade processor to provide an application resource tablecomprising component and/or module identity, functional description,and/or computational resource requirements and/or capabilities neededfor execution of the component and/or module.

A blade processor can be assigned to execute the component and/or modulewhen the blade processor satisfies the corresponding computationalresource requirements and/or capabilities.

The master blade processor can assign a network address to each bladeprocessor and communication device in communication with the masterblade processor.

The master blade processor can assign a component and/or module to aselected blade processor when the selected blade processor is availableor, though unavailable, is executing a component and/or module having alower priority than the component and/or module to be assigned to theselected blade processor.

The present disclosure can provide a number of advantages depending onthe particular aspect, embodiment, and/or configuration. For example,operating multiple operating systems on a common on board computerplatform for vehicle control and infotainment tasks, functions andoperations can provide a high level of vehicle security and blocksuccessfully intrusive attacks. The network security configurations canenable both infotainment and critical vehicle tasks, functions, andoperations to performed automatically and concurrently in a vehiclewithout increasing driver danger from computer-targeted attacks by anoutside source. Using a common computer to run safely both the first andsecond operating systems can not only reduce vehicle manufacturing costsbut also provide a simpler computational architecture. The devicediscovery daemon, by locating the portable device seeking access to thevehicle network, can not only provide higher levels of security fromintrusive attacks via a computational device external to the vehicle butalso protect the privacy and resources of the vehicle network. Theapplication of accessibility technologies to the driver's screen cansuccessfully reduce driver distractions while enabling the driver toperform permissible computational tasks. The availability ofaccessibility technologies in the vehicle can not only comply withprevailing legal requirements but also enhance passenger enjoyment. Theuse of network control and media servers and virtual network consolefunctionality on a common processing board can provide a simple yeteffective way to stream media to devices within the vehicle network. Theuse of media filters and restrictions based on one or more of theidentity of the vehicle occupant requesting media content, the identityof a portable computational device associated with the vehicle occupant,and the spatial location of the vehicle occupant and/or remotecomputational device can enable compliance with prevailing lawsregarding driver distractions while providing the vehicle owner with theability to control media access by one or more selected vehicleoccupants. The use of user accounts to control passenger access tovehicle tasks, functions, and operations can prevent a non-drivingpassenger, for instance, from controlling a critical vehicle task,function or operation and confusing or frustrating the driver. Theinactive control surface can enable a vehicle occupant to perform tasks,functions and operations without viewing his or her screen. Thisprovides yet another convenient method for driver control of vehicle andnon-vehicle tasks, functions, and operations without distraction whiledriving the vehicle. The blade processor architecture can take advantageof the pervasiveness of TCP/IP and the large volume of components and/ormodules made for IP-based distributed systems, such as the Ethernet. Thearchitecture can be a modular distributed system that can be upgradedand/or extended over time, without changing the basic processingarchitecture. Because the various subsystems can communicate with oneanother by protocol-based messages, there is not requirement that allsoftware be written in any specific language or execute on any specificoperating system. This can allow developers to use the most appropriaterun time environment for the subsystem being developed. For instance,when a real time operating system (“RTOS”) is required because of thetiming constraints of the run time environment (i.e., real time controlof a function), a subsystem can be developed using RTOS, withoutconstraining the runtime environment of less demanding systems (e.g., aconsole subsystem).

These and other advantages will be apparent from the disclosure.

The phrases “at least one,” “one or more,” and “and/or” are open-endedexpressions that are both conjunctive and disjunctive in operation. Forexample, each of the expressions “at least one of A, B and C,” “at leastone of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B,or C” and “A, B, and/or C” means A alone, B alone, C alone, A and Btogether, A and C together, B and C together, or A, B and C together.

The term “a” or “an” entity refers to one or more of that entity. Assuch, the terms “a” (or “an”), “one or more,” and “at least one” can beused interchangeably herein. It is also to be noted that the terms“comprising,” “including,” and “having” can be used interchangeably.

“Accessible technology” refers to any computer technology that users canadjust and/or employ to accommodate his or her vision, dexterity,hearing, cognitive, language, learning, and/or speech needs.Accessibility technology can be in the form of accessibility features orsettings built into software programs and specialty hardware devices orsoftware programs.

“Assistive technology” refers to any technology that users can adjustand/or employ to accommodate his or her vision, dexterity, hearing,cognitive, language, learning, and/or speech needs. Examples ofassistive technology include accessible technology, adjuncts,peripherals, plug-ins, and add-ins.

The term “disability” refers to the consequence of an impairment thatmay be physical, cognitive, intellectual, mental, sensory, emotional,developmental, or some combination of these. By way of illustration,Section 503 defines “disability” as an impairment that substantiallylimits a major life activity, even if it were not to limit any othermajor life activity, or an impairment that is episodically active or inremission and would substantially limit a major life activity whenactive.

The term “automatic” and variations thereof, as used herein, refer toany process or operation done without material human input when theprocess or operation is performed. However, a process or operation canbe automatic, even though performance of the process or operation usesmaterial or immaterial human input, if the input is received before theperformance of the process or operation. Human input is deemed to bematerial if such input influences how the process or operation will beperformed. Human input that consents to the performance of the processor operation is not deemed to be “material.”

The term “automotive navigation system” can refer to a satellitenavigation system designed for use in vehicles. It typically uses a GPSnavigation device to acquire position data to locate the user on a roadin the unit's map database. Using the road database, the unit can givedirections to other locations along roads also in its database. Deadreckoning using distance data from sensors attached to the drivetrain, agyroscope and an accelerometer can be used for greater reliability, asGPS signal loss and/or multipath can occur due to urban canyons ortunnels.

The term “bus” and variations thereof, as used herein, can refer to asubsystem that transfers information and/or data between variouscomponents. A bus generally refers to the collection communicationhardware interface, interconnects, bus architecture, standard, and/orprotocol defining the communication scheme for a communication systemand/or communication network. A bus may also refer to a part of acommunication hardware that interfaces the communication hardware withthe interconnects that connect to other components of the correspondingcommunication network. The bus may be for a wired network, such as aphysical bus, or wireless network, such as part of an antenna orhardware that couples the communication hardware with the antenna. A busarchitecture supports a defined format in which information and/or datais arranged when sent and received through a communication network. Aprotocol may define the format and rules of communication of a busarchitecture.

The terms “communication device,” “smartphone,” and “mobile device,” andvariations thereof, as used herein, can be used interchangeably and mayinclude any type of device capable of communicating with one or more ofanother device and/or across a communications network, via acommunications protocol, and the like. Exemplary communication devicesmay include but are not limited to smartphones, handheld computers,laptops, netbooks, notebook computers, subnotebooks, tablet computers,scanners, portable gaming devices, phones, pagers, GPS modules, portablemusic players, and other Internet-enabled and/or network-connecteddevices.

A “communication modality” can refer to any protocol- or standarddefined or specific communication session or interaction, such asVoice-Over-Internet-Protocol (“VoIP), cellular communications (e.g.,IS-95, 1G, 2G, 3G, 3.5G, 4G, 4G/IMT-Advanced standards, 3GPP, WIMAX™,GSM, CDMA, CDMA2000, EDGE, NEVDO, iDEN, GPRS, HSPDA, TDMA, UMA, UMTS,ITU-R, and 5G), Bluetooth™, text or instant messaging (e.g., AIM, Blauk,eBuddy, Gadu-Gadu, IBM Lotus Sametime, ICQ, iMessage, IMVU, Lync, MXit,Paltalk, Skype, Tencent QQ, Windows Live Messenger™ or MSN Messenger™,Wireclub, Xfire, and Yahoo! Messenger™) email, Twitter (e.g., tweeting),Digital Service Protocol (DSP), and the like.

The term “communication system” or “communication network” andvariations thereof, as used herein, can refer to a collection ofcommunication components capable of one or more of transmission, relay,interconnect, control, or otherwise manipulate information or data fromat least one transmitter to at least one receiver. As such, thecommunication may include a range of systems supporting point-to-pointor broadcasting of the information or data. A communication system mayrefer to the collection individual communication hardware as well as theinterconnects associated with and connecting the individualcommunication hardware. Communication hardware may refer to dedicatedcommunication hardware or may refer a processor coupled with acommunication means (i.e., an antenna) and running software capable ofusing the communication means to send and/or receive a signal within thecommunication system. Interconnect refers some type of wired or wirelesscommunication link that connects various components, such ascommunication hardware, within a communication system. A communicationnetwork may refer to a specific setup of a communication system with thecollection of individual communication hardware and interconnects havingsome definable network topography. A communication network may includewired and/or wireless network having a pre-set to an ad hoc networkstructure.

The term “computer-readable medium,” as used herein refers to anytangible storage and/or transmission medium that participates inproviding instructions to a processor for execution. Such a medium maytake many forms, including but not limited to, non-volatile media,volatile media, and transmission media. Non-volatile media includes, forexample, non-volatile random access memory (NVRAM), or magnetic oroptical disks. Volatile media includes dynamic memory, such as mainmemory. Common forms of computer-readable media include, for example, afloppy disk, a flexible disk, hard disk, magnetic tape, or any othermagnetic medium, magneto-optical medium, a compact disc read only memory(CD-ROM), any other optical medium, punch cards, paper tape, any otherphysical medium with patterns of holes, a random access memory (RAM), aprogrammable read only memory (PROM), and erasable programmable readonly memory EPROM, a FLASH-EPROM, a solid state medium like a memorycard, any other memory chip or cartridge, a carrier wave as describedhereinafter, or any other medium from which a computer can read. Adigital file attachment to an e-mail or other self-contained informationarchive or set of archives is considered a distribution mediumequivalent to a tangible storage medium. When the computer-readablemedia is configured as a database, it is to be understood that thedatabase may be any type of database, such as relational, hierarchical,object-oriented, and/or the like. Accordingly, the disclosure isconsidered to include a tangible storage medium or distribution mediumand prior art-recognized equivalents and successor media, in which thesoftware implementations of the present disclosure are stored. It shouldbe noted that any computer readable medium that is not a signaltransmission may be considered non-transitory.

The terms dash and dashboard and variations thereof, as used herein, maybe used interchangeably and can be any panel and/or area of a vehicledisposed adjacent to an operator, user, and/or passenger. Dashboards mayinclude, but are not limited to, one or more control panel(s),instrument housing(s), head unit(s), indicator(s), gauge(s), meter(s),light(s), audio equipment, computer(s), screen(s), display(s), HUDunit(s), and graphical user interface(s).

The term “module” as used herein refers to any known or later developedhardware, software, firmware, artificial intelligence, fuzzy logic, orcombination of hardware and software that is capable of performing thefunctionality associated with that element.

The term “desktop” refers to a metaphor used to portray systems. Adesktop is generally considered a “surface” that may include pictures,called icons, widgets, folders, etc. that can activate and/or showapplications, windows, cabinets, files, folders, documents, and othergraphical items. The icons are generally selectable to initiate a taskthrough user interface interaction to allow a user to executeapplications and/or conduct other operations.

The term “display” refers to a portion of a physical screen used todisplay the output of a computer to a user.

The term “displayed image” refers to an image produced on the display. Atypical displayed image is a window or desktop. The displayed image mayoccupy all or a portion of the display.

The term “display orientation” refers to the way in which a rectangulardisplay is oriented for viewing. The two most common types of displayorientations are portrait and landscape. In landscape mode, the displayis oriented such that the width of the display is greater than theheight of the display (such as a 4:3 ratio, which is 4 units wide and 3units tall, or a 16:9 ratio, which is 16 units wide and 9 units tall).Stated differently, the longer dimension of the display is orientedsubstantially horizontal in landscape mode while the shorter dimensionof the display is oriented substantially vertical. In the portrait mode,by contrast, the display is oriented such that the width of the displayis less than the height of the display. Stated differently, the shorterdimension of the display is oriented substantially horizontal in theportrait mode while the longer dimension of the display is orientedsubstantially vertical. A multi-screen display can have one compositedisplay that encompasses all the screens. The composite display can havedifferent display characteristics based on the various orientations ofthe device.

The term “electronic address” can refer to any contactable address,including a telephone number, instant message handle, e-mail address,Uniform Resource Locator (“URL”), Global Universal Identifier (“GUID”),Universal Resource Identifier (“URI”), Address of Record (“AOR”),electronic alias in a database, etc., combinations thereof

The term “gesture” refers to a user action that expresses an intendedidea, action, meaning, result, and/or outcome. The user action caninclude manipulating a device (e.g., opening or closing a device,changing a device orientation, moving a trackball or wheel, etc.),movement of a body part in relation to the device, movement of animplement or tool in relation to the device, audio inputs, etc. Agesture may be made on a device (such as on the screen) or with thedevice to interact with the device.

The term “gesture capture” refers to a sense or otherwise a detection ofan instance and/or type of user gesture. The gesture capture can bereceived by sensors in three-dimensional space. Further, the gesturecapture can occur in one or more areas of a screen, for example, on atouch-sensitive display or a gesture capture region. A gesture regioncan be on the display, where it may be referred to as a touch sensitivedisplay, or off the display, where it may be referred to as a gesturecapture area.

The terms “infotainment” and “infotainment system” may be usedinterchangeably and can refer to the hardware/software products, data,content, information, and/or systems, which can be built into or addedto vehicles to enhance driver and/or passenger experience. Infotainmentmay provide media and/or multimedia content. An example isinformation-based media content or programming that also includesentertainment content.

A “multi-screen application” refers to an application that is capable ofproducing one or more windows that may simultaneously occupy one or morescreens. A multi-screen application commonly can operate insingle-screen mode in which one or more windows of the application aredisplayed only on one screen or in multi-screen mode in which one ormore windows are displayed simultaneously on multiple screens.

A “single-screen application” refers to an application that is capableof producing one or more windows that may occupy only a single screen ata time.

The terms “online community,” “e-community,” or “virtual community” canmean a group of people that interact via a computer network, for social,professional, educational, and/or other purposes. The interaction canuse a variety of media formats, including wikis, blogs, chat rooms,Internet forums, instant messaging, email, and other forms of electronicmedia. Many media formats may be used in social software separatelyand/or in combination, including text-based chat rooms and forums thatuse voice, video text or avatars.

The term “satellite positioning system receiver” can refer to a wirelessreceiver or transceiver to receive and/or send location signals fromand/or to a satellite positioning system (SPS), such as the GlobalPositioning System (“GPS”) (US), GLONASS (Russia), Galileo positioningsystem (EU), Compass navigation system (China), and RegionalNavigational Satellite System (India).

The term “social network service” may include a service provider thatbuilds online communities of people, who share interests and/oractivities, or who are interested in exploring the interests and/oractivities of others. Social network services can be network-based andmay provide a variety of ways for users to interact, such as e-mail andinstant messaging services.

The term “social network” can refer to a network-based social network.

The term “screen,” “touch screen,” “touchscreen,” or “touch-sensitivedisplay” refers to a physical structure that enables the user tointeract with the computer by touching areas on the screen and providesinformation to a user through a display. The touch screen may sense usercontact in a number of different ways, such as by a change in anelectrical parameter (e.g., resistance or capacitance), acoustic wavevariations, infrared radiation proximity detection, light variationdetection, and the like. In a resistive touch screen, for example,normally separated conductive and resistive metallic layers in thescreen pass an electrical current. When a user touches the screen, thetwo layers make contact in the contacted location, whereby a change inelectrical field is noted and the coordinates of the contacted locationcalculated. In a capacitive touch screen, a capacitive layer storeselectrical charge, which is discharged to the user upon contact with thetouch screen, causing a decrease in the charge of the capacitive layer.The decrease is measured, and the contacted location coordinatesdetermined. In a surface acoustic wave touch screen, an acoustic wave istransmitted through the screen, and the acoustic wave is disturbed byuser contact. A receiving transducer detects the user contact instanceand determines the contacted location coordinates.

The term “window” refers to a, typically rectangular, displayed image onat least part of a display that contains or provides content differentfrom the rest of the screen. The window may obscure the desktop. Thedimensions and orientation of the window may be configurable either byanother module or by a user. When the window is expanded, the window canoccupy substantially all of the display space on a screen or screens.

The terms “determine,” “calculate,” and “compute,” and variationsthereof, as used herein, are used interchangeably and include any typeof methodology, process, mathematical operation, or technique.

It shall be understood that the term “means,” as used herein, shall begiven its broadest possible interpretation in accordance with 35 U.S.C.,Section 112, Paragraph 6 or other applicable law. Accordingly, a claimincorporating the term “means” shall cover all structures, materials, oracts set forth herein, and all of the equivalents thereof. Further, thestructures, materials or acts and the equivalents thereof shall includeall those described in the summary of the invention, brief descriptionof the drawings, detailed description, abstract, and claims themselves.

The terms “vehicle,” “car,” “automobile,” and variations thereof may beused interchangeably herein and can refer to a device or structure fortransporting animate and/or inanimate or tangible objects (e.g., personsand/or things), such as a self-propelled conveyance. A vehicle as usedherein can include any conveyance or model of a conveyance, where theconveyance was originally designed for the purpose of moving one or moretangible objects, such as people, animals, cargo, and the like. The term“vehicle” does not require that a conveyance moves or is capable ofmovement. Typical vehicles may include but are in no way limited tocars, trucks, motorcycles, busses, automobiles, trains, railedconveyances, boats, ships, marine conveyances, submarine conveyances,airplanes, space craft, flying machines, human-powered conveyances, andthe like.

The term “profile,” as used herein, can refer to any data structure,data store, and/or database that includes one or more items ofinformation associated with a vehicle, a vehicle system, a device (e.g.,a mobile device, laptop, mobile phone, etc.), or a person.

The term “in communication with,” as used herein, refers to anycoupling, connection, or interaction using electrical signals toexchange information or data, using any system, hardware, software,protocol, or format, regardless of whether the exchange occurswirelessly or over a wired connection.

The preceding is a simplified summary of the disclosure to provide anunderstanding of some aspects of the disclosure. This summary is neitheran extensive nor exhaustive overview of the disclosure and its variousaspects, embodiments, and/or configurations. It is intended neither toidentify key or critical elements of the disclosure nor to delineate thescope of the disclosure but to present selected concepts of thedisclosure in a simplified form as an introduction to the more detaileddescription presented below. As will be appreciated, other aspects,embodiments, and/or configurations of the disclosure are possibleutilizing, alone or in combination, one or more of the features setforth above or described in detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an embodiment of a vehicle operating environment;

FIG. 2 is a block diagram of an embodiment of a vehicle system;

FIG. 3 is a block diagram of an embodiment of a vehicle control systemenvironment;

FIG. 4 is a block diagram of an embodiment of a vehicle communicationssubsystem;

FIG. 5A is a first block diagram of an embodiment of a vehicle interiorenvironment separated into areas and/or zones;

FIG. 5B is a second block diagram of an embodiment of a vehicle interiorenvironment separated into areas and/or zones;

FIG. 5C is a third block diagram of an embodiment of a vehicle interiorenvironment separated into areas and/or zones;

FIG. 6A depicts an embodiment of a sensor configuration for a vehicle;

FIG. 6B depicts an embodiment of a sensor configuration for a zone of avehicle;

FIG. 7A is a block diagram of an embodiment of interior sensors for avehicle;

FIG. 7B is a block diagram of an embodiment of exterior sensors for avehicle;

FIG. 8A is a block diagram of an embodiment of a media subsystem for avehicle;

FIG. 8B is a block diagram of an embodiment of a user and deviceinteraction subsystem for a vehicle;

FIG. 8C is a block diagram of an embodiment of a Navigation subsystemfor a vehicle;

FIG. 9 is a block diagram of an embodiment of a communications subsystemfor a vehicle;

FIG. 10 is a block diagram of an embodiment of a software architecturefor the vehicle control system;

FIG. 11A is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11B is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11C is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11D is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11E is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11F is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11G is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11H is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11I is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11J is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 11K is a graphical representation of an embodiment of a gesturethat a user may perform to provide input to a vehicle control system;

FIG. 12A is a diagram of an embodiment of a data structure for storinginformation about a user of a vehicle;

FIG. 12B is a diagram of an embodiment of a data structure for storinginformation about a device associated with or in a vehicle;

FIG. 12C is a diagram of an embodiment of a data structure for storinginformation about a system of a vehicle;

FIG. 12D is a diagram of an embodiment of a data structure for storinginformation about a vehicle;

FIG. 13 is a flow or process diagram of a method for storing one or moresettings associated with a user;

FIG. 14 is a flow or process diagram of a method for establishing one ormore settings associated with a user;

FIG. 15 is a flow or process diagram of a method for storing one or moresettings associated with a user;

FIG. 16 is a flow or process diagram of a method for storing one or moregestures associated with a user;

FIG. 17 is a flow or process diagram of a method for reacting to agesture performed by a user;

FIG. 18 is a flow or process diagram of a method for storing health dataassociated with a user;

FIG. 19 is a flow or process diagram of a method for reacting to agesture performed by a user;

FIG. 20 depicts a flow diagram according to an embodiment;

FIG. 21 depicts an on board media system according to an embodiment;

FIG. 22 depicts a flow diagram according to an embodiment;

FIG. 23 depicts a flow diagram according to an embodiment;

FIG. 24 depicts a computational system according to an embodiment;

FIG. 25 depicts a computational system according to an embodiment;

FIG. 26 depicts a flow diagram according to an embodiment;

FIG. 27 depicts a flow diagram according to an embodiment;

FIG. 28 depicts a screen shot according to an embodiment; and

FIG. 29 depicts a screen shot according to an embodiment;

FIG. 30 depicts a screen shot according to an embodiment;

FIG. 31 depicts a flow diagram according to an embodiment;

FIG. 32 depicts a flow diagram according to an embodiment;

FIG. 33 depicts a segmented control surface according to an embodiment;

FIG. 34 depicts a mapped display according to an embodiment;

FIG. 35 depicts a flow diagram according to an embodiment;

FIG. 36 depicts a flow diagram according to an embodiment;

FIGS. 37A-B depict a flow diagram according to an embodiment;

FIG. 38 depicts a flow diagram according to an embodiment; and

FIG. 39 depicts a flow diagram according to an embodiment.

In the appended figures, similar components and/or features may have thesame reference label. Further, various components of the same type maybe distinguished by following the reference label by a letter thatdistinguishes among the similar components. If only the first referencelabel is used in the specification, the description is applicable to anyone of the similar components having the same first reference labelirrespective of the second reference letter or label.

DETAILED DESCRIPTION

Presented herein are embodiments of systems, devices, processes, datastructures, user interfaces, etc. The embodiments may relate to anautomobile and/or an automobile environment. The automobile environmentcan include systems associated with the automobile and devices or othersystems in communication with the automobile and/or automobile systems.Furthermore, the systems can relate to communications systems and/ordevices and may be capable of communicating with other devices and/or toan individual or group of individuals. Further, the systems can receiveuser input in unique ways. The overall design and functionality of thesystems provide for an enhanced user experience making the automobilemore useful and more efficient. As described herein, the automobilesystems may be electrical, mechanical, electro-mechanical,software-based, and/or combinations thereof.

A vehicle environment 100 that may contain a vehicle ecosystem is shownin FIG. 1. The vehicle environment 100 can contain areas associated witha vehicle or conveyance 104. The vehicle 104 is shown as a car but canbe any type of conveyance. The environment 100 can include at leastthree zones. A first zone 108 may be inside a vehicle 104. The zone 108includes any interior space, trunk space, engine compartment, or otherassociated space within or associated with the vehicle 104. The interiorzone 108 can be defined by one or more techniques, for example,geo-fencing.

A second zone 112 may be delineated by line 120. The zone 112 is createdby a range of one or more sensors associated with the vehicle 104. Thus,the area 112 is exemplary of the range of those sensors and what can bedetected by those sensors associated with the vehicle 104. Althoughsensor range is shown as a fixed and continuous oval, the sensor rangemay be dynamic and/or discontinuous. For example, a ranging sensor(e.g., radar, lidar, ladar, etc.) may provide a variable range dependingon output power, signal characteristics, or environmental conditions(e.g., rain, fog, clear, etc.). The rest of the environment includes allspace beyond the range of the sensors and is represented by space 116.Thus, the environment 100 may have an area 116 that includes all areasbeyond the sensor range 112. The area 116 may include locations oftravel that the vehicle 104 may proceed to in the future.

An embodiment of a vehicle system 200 is shown in FIG. 2. The vehiclesystem 200 may comprise hardware and/or software that conduct variousoperations for or with the vehicle 104. The operations can include, butare not limited to, providing information to the user 216, receivinginput from the user 216, and controlling the functions or operation ofthe vehicle 104, etc. The vehicle system 200 can include a vehiclecontrol system 204. The vehicle control system 204 can be any type ofcomputing system operable to conduct the operations as described herein.An example of a vehicle control system may be as described inconjunction with FIG. 3.

The vehicle control system 204 may interact with a memory or storagesystem 208 that stores system data. System data 208 may be any type ofdata needed for the vehicle control system 204 to control effectivelythe vehicle 104. The system data 208 can represent any type of databaseor other storage system. Thus, the system data 208 can be a flat filedata system, an object-oriented data system, or some other data systemthat may interface with the vehicle control system 204.

The vehicle control system 204 may communicate with a device or userinterface 212, 248. The user interface 212, 248 may be operable toreceive user input either through touch input, on one or more userinterface buttons, via voice command, via one or more image sensors, orthrough a graphical user interface that may include a gesture captureregion, as described in conjunction with the other figures providedherein. Further, the symbol 212, 248 can represent a device that islocated or associated with the vehicle 104. The device 212, 248 can be amobile device, including, but not limited to, a mobile telephone, amobile computer, or other type of computing system or device that iseither permanently located in or temporarily associated with, but notnecessarily connected to, the vehicle 104. Thus, the vehicle controlsystem 204 can interface with the device 212, 248 and leverage thedevice's computing capability to provide one or more of the features orfunctions as described herein.

The device or user interface 212, 248 can receive input or provideinformation to a user 216. The user 216 may thus interact with thevehicle control system 204 through the interface or device 212, 248.Further, the device 212, 248 may include or have access to device data220 and/or profile data 252. The device data 220 can be any type of datathat is used in conjunction with the device 212, 248 including, but notlimited to, multimedia data, preferences data, device identificationinformation, or other types of data. The profile data 252 can be anytype of data associated with at least one user 216 including, but in noway limited to, bioinformatics, medical information, driving history,personal information (e.g., home physical address, business physicaladdress, contact addresses, likes, dislikes, hobbies, size, weight,occupation, business contacts—including physical and/or electronicaddresses, personal contacts—including physical and/or electronicaddresses, family members, and personal information related thereto,etc.), other user characteristics, advertising information, usersettings and feature preferences, travel information, associated vehiclepreferences, communication preferences, historical information (e.g.,including historical, current, and/or future travel destinations),Internet browsing history, or other types of data. In any event, thedata may be stored as device data 220 and/or profile data 252 in astorage system similar to that described in conjunction with FIGS. 12Athrough 12D.

As an example, the profile data 252 may include one or more userprofiles. User profiles may be generated based on data gathered from oneor more of vehicle preferences (e.g., seat settings, HVAC settings, dashconfigurations, and the like), recorded settings, geographic locationinformation (e.g., provided by a satellite positioning system (e.g.,GPS), Wi-Fi hotspot, cell tower data, etc.), mobile device information(such as mobile device electronic addresses, Internet browsing historyand content, application store selections, user settings and enabled anddisabled features, and the like), private information (such as userinformation from a social network, user presence information, userbusiness account, and the like), secure data, biometric information,audio information from on board microphones, video information from onboard cameras, Internet browsing history and browsed content using an onboard computer and/or the local area network enabled by the vehicle 104,geographic location information (e.g., a vendor storefront, roadwayname, city name, etc.), and the like.

The profile data 252 may include one or more user accounts. Useraccounts may include access and permissions to one or more settingsand/or feature preferences associated with the vehicle 104,communications, infotainment, content, etc. In one example, a useraccount may allow access to certain settings for a particular user,while another user account may deny access to the settings for anotheruser, and vice versa. The access controlled by the user account may bebased on at least one of a user account priority, role, permission, age,family status, a group priority (e.g., the user account priority of oneor more users, etc.), a group age (e.g., the average age of users in thegroup, a minimum age of the users in the group, a maximum age of theusers in the group, and/or combinations thereof, etc.).

For example, a user 216 may be allowed to purchase applications (e.g.,software, etc.) for the vehicle 104 and/or a device associated with thevehicle 104 based on information associated with the user account. Thisuser account information may include a preferred payment method,permissions, and/or other account information. As provided herein, theuser account information may be part of the user profile and/or otherdata stored in the profile data 252.

As another example, an adult user (e.g., a user with an age of 18 yearsold and/or over, etc.) may be located in an area of a vehicle 104, suchas a rear passenger area. Continuing this example a child user (e.g., auser with an age of 17 years old and/or less, etc.) may be located inthe same, or close, area. In this example, the user account informationin the profile data 252 associated with both the adult user and thechild user may be used by the vehicle 104 in determining whether contentis appropriate for the area given the age of the child user. Forinstance, a graphic movie containing violence (e.g., a movie associatedwith a mature rating, such as a Motion Picture Association of America(MPAA) rating of “R,” “NC-17,” etc.) may be suitable to present to adisplay device associated with the adult user but may not be acceptableto present to the display device if a 12-year old child user may seeand/or hear the content of the movie.

The vehicle control system 204 may also communicate with or through acommunication network 224. The communication network 224 can representany type of wireless and/or wired communication system that may beincluded within the vehicle 104 or operable to communicate outside thevehicle 104. Thus, the communication network 224 can include a localarea communication capability and a wide area communication capability.For example, the communication network 224 can include a Bluetooth®wireless system, an 802.11x (e.g., 802.11G/802.11G/802.11AC, or thelike, wireless system), a CAN bus, an Ethernet network within thevehicle 104, or other types of communication networks that may functionwith or be associated with the vehicle 104. Further, the communicationnetwork 224 can also include wide area communication capabilities,including one or more of, but not limited to, a cellular communicationcapability, satellite telephone communication capability, a wirelesswide area network communication capability, or other types ofcommunication capabilities that allow for the vehicle control system 204to communicate outside the vehicle 104.

The vehicle control system 204 may communicate through the communicationnetwork 224 to a server 228 that may be located in a facility that isnot within physical proximity to the vehicle 104. Thus, the server 228may represent a cloud computing system or cloud storage that allows thevehicle control system 204 to either gain access to further computingcapabilities or to storage at a location outside of the vehicle 104. Theserver 228 can include a computer processor and memory and be similar toany computing system as understood to one skilled in the art.

Further, the server 228 may be associated with stored data 232. Thestored data 232 may be stored in any system or by any method, asdescribed in conjunction with system data 208, device data 220, and/orprofile data 252. The stored data 232 can include information that maybe associated with one or more users 216 or associated with one or morevehicles 104. The stored data 232, being stored in a cloud or in adistant facility, may be exchanged among vehicles 104 or may be used bya user 216 in different locations or with different vehicles 104.Additionally or alternatively, the server may be associated with profiledata 252 as provided herein. It is anticipated that the profile data 252may be accessed across the communication network 224 by one or morecomponents of the system 200. Similar to the stored data 232, theprofile data 252, being stored in a cloud or in a distant facility, maybe exchanged among vehicles 104 or may be used by a user 216 indifferent locations or with different vehicles 104.

The vehicle control system 204 may also communicate with one or moresensors 236, 242, which are either associated with the vehicle 104 orcommunicate with the vehicle 104. Vehicle sensors 242 may include one ormore sensors for providing information to the vehicle control system 204that determine or provide information about the environment 100 in whichthe vehicle 104 is operating. Embodiments of these sensors may be asdescribed in conjunction with FIGS. 6A-7B. Non-vehicle sensor 236 can beany type of sensor that is not currently associated with the vehicle104. For example, non-vehicle sensor 236 can be sensors in a trafficsystem operated by a third party that provides data to the vehiclecontrol system 204. Further, the non-vehicle sensor(s) 236 can be othertypes of sensors which provide information about the distant environment116 or other information about the vehicle 104 or the environment 100.These non-vehicle sensors 236 may be operated by third parties butprovide information to the vehicle control system 204. Examples ofinformation provided by the sensors 236 and that may be used by thevehicle control system 204 may include weather tracking data, trafficdata, user health tracking data, vehicle maintenance data, or othertypes of data, which may provide environmental or other data to thevehicle control system 204. The vehicle control system 204 may alsoperform signal processing of signals received from one or more sensors236, 242. Such signal processing may include estimation of a measuredparameter from a single sensor, such as multiple measurements of a rangestate parameter from the vehicle 104 to an obstacle, and/or theestimation, blending, or fusion of a measured state parameter frommultiple sensors such as multiple radar sensors or a combination of aladar/lidar range sensor and a radar sensor. Signal processing of suchsensor signal measurements may comprise stochastic signal processing,adaptive signal processing, and/or other signal processing techniquesknown to those skilled in the art.

The various sensors 236, 242 may include one or more sensor memory 244.Embodiments of the sensor memory 244 may be configured to store datacollected by the sensors 236, 242. For example, a temperature sensor maycollect temperature data associated with a vehicle 104, user 216, and/orenvironment, over time. The temperature data may be collectedincrementally, in response to a condition, or at specific time periods.In this example, as the temperature data is collected, it may be storedin the sensor memory 244. In some cases, the data may be stored alongwith an identification of the sensor and a collection time associatedwith the data. Among other things, this stored data may include multipledata points and may be used to track changes in sensor measurements overtime. As can be appreciated, the sensor memory 244 can represent anytype of database or other storage system.

The diagnostic communications module 256 may be configured to receiveand transmit diagnostic signals and information associated with thevehicle 104. Examples of diagnostics signals and information mayinclude, but is in no way limited to, vehicle system warnings, sensordata, vehicle component status, service information, component health,maintenance alerts, recall notifications, predictive analysis, and thelike. Embodiments of the diagnostic communications module 256 may handlewarning/error signals in a predetermined manner. The signals, forinstance, can be presented to one or more of a third party, occupant,vehicle control system 204, and a service provider (e.g., manufacturer,repair facility, etc.).

Optionally, the diagnostic communications module 256 may be utilized bya third party (i.e., a party other than the user 216, etc.) incommunicating vehicle diagnostic information. For instance, amanufacturer may send a signal to a vehicle 104 to determine a statusassociated with one or more components associated with the vehicle 104.In response to receiving the signal, the diagnostic communicationsmodule 256 may communicate with the vehicle control system 204 toinitiate a diagnostic status check. Once the diagnostic status check isperformed, the information may be sent via the diagnostic communicationsmodule 256 to the manufacturer. This example may be especially useful indetermining whether a component recall should be issued based on thestatus check responses returned from a certain number of vehicles.

Wired/wireless transceiver/communications ports 260 may be included. Thewired/wireless transceiver/communications ports 260 may be included tosupport communications over wired networks or links, for example withother communication devices, server devices, and/or peripheral devices.Examples of wired/wireless transceiver/communications ports 260 includeEthernet ports, Universal Serial Bus (USB) ports, Institute ofElectrical and Electronics Engineers (IEEE) 1594, or other interfaceports.

An embodiment of a vehicle control environment 300 including a vehiclecontrol system 204 may be as shown in FIG. 3. Beyond the vehicle controlsystem 204, the vehicle control environment 300 can include one or moreof, but is not limited to, a power source and/or power control module316, a data storage module 320, user interface(s)/input interface(s)324, vehicle subsystems 328, user interaction subsystems 332, GlobalPositioning System (GPS)/Navigation subsystems 336, sensor(s) and/orsensor subsystems 340, communication subsystems 344, media subsystems348, and/or device interaction subsystems 352. The subsystems, modules,components, etc. 316-352 may include hardware, software, firmware,computer readable media, displays, input devices, output devices, etc.or combinations thereof. The system, subsystems, modules, components,etc. 204, 316-352 may communicate over a network or bus 356. Thiscommunication bus 356 may be bidirectional and perform datacommunications using any known or future-developed standard or protocol.An example of the communication bus 356 may be as described inconjunction with FIG. 4.

The vehicle control system 204 can include a processor 304, memory 308,and/or an input/output (I/O) module 312. Thus, the vehicle controlsystem 204 may be a computer system, which can comprise hardwareelements that may be electrically coupled. The hardware elements mayinclude one or more central processing units (CPUs) 304; one or morecomponents of the I/O module 312 including input devices (e.g., a mouse,a keyboard, etc.) and/or one or more output devices (e.g., a displaydevice, a printer, etc.).

The processor 304 may comprise a general purpose programmable processoror controller for executing application programming or instructions. Theprocessor 304 may, optionally, include multiple processor cores, and/orimplement multiple virtual processors. Additionally or alternatively,the processor 304 may include multiple physical processors. As aparticular example, the processor 304 may comprise a speciallyconfigured application specific integrated circuit (ASIC) or otherintegrated circuit, a digital signal processor, a controller, ahardwired electronic or logic circuit, a programmable logic device orgate array, a special purpose computer, or the like. The processor 304generally functions to run programming code or instructions implementingvarious functions of the vehicle control system 204.

The input/output module 312 and associated ports may be included tosupport communications over wired or wireless networks or links, forexample with other communication devices, server devices, and/orperipheral devices. Examples of an input/output module 312 include anEthernet port, a Universal Serial Bus (USB) port, Institute ofElectrical and Electronics Engineers (IEEE) 1594, or other interface.

The vehicle control system 204 may also include one or more storagedevices 308. By way of example, storage devices 308 may be disk drives,optical storage devices, solid-state storage devices such as a randomaccess memory (“RAM”) and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable and/or the like. The vehicle controlsystem 204 may additionally include a computer-readable storage mediareader; a communications system (e.g., a modem, a network card (wirelessor wired), an infra-red communication device, etc.); and working memory308, which may include RAM and ROM devices as described above. Thevehicle control system 204 may also include a processing accelerationunit, which can include a digital signal processor (DSP), aspecial-purpose processor, and/or the like.

The computer-readable storage media reader can further be connected to acomputer-readable storage medium, together (and, optionally, incombination with storage device(s)) comprehensively representing remote,local, fixed, and/or removable storage devices plus storage media fortemporarily and/or more permanently containing computer-readableinformation. The communications system may permit data to be exchangedwith an external or internal network and/or any other computer or devicedescribed herein. Moreover, as disclosed herein, the term “storagemedium” may represent one or more devices for storing data, includingread only memory (ROM), random access memory (RAM), magnetic RAM, corememory, magnetic disk storage mediums, optical storage mediums, flashmemory devices, and/or other machine readable mediums for storinginformation.

The vehicle control system 204 may also comprise software elementsincluding an operating system and/or other code, as described inconjunction with FIG. 10. It should be appreciated that alternates tothe vehicle control system 204 may have numerous variations from thatdescribed herein. For example, customized hardware might also be usedand/or particular elements might be implemented in hardware, software(including portable software, such as applets), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

The power source and/or power control module 316 can include any type ofpower source, including, but not limited to, batteries, alternatingcurrent sources (from connections to a building power system or powerline), solar cell arrays, etc. One or more components or modules mayalso be included to control the power source or change thecharacteristics of the provided power signal. Such modules can includeone or more of, but is not limited to, power regulators, power filters,alternating current (AC) to direct current (DC) converters, DC to ACconverters, receptacles, wiring, other converters, etc. The power sourceand/or power control module 316 functions to provide the vehicle controlsystem 204 and any other system with power.

The data storage 320 can include any module for storing, retrieving,and/or managing data in one or more data stores and/or databases. Thedatabase or data stores may reside on a storage medium local to (and/orresident in) the vehicle control system 204 or in the vehicle 104.Alternatively, some of the data storage capability may be remote fromthe vehicle control system 204 or automobile, and in communication(e.g., via a network) to the vehicle control system 204. The database ordata stores may reside in a storage-area network (“SAN”) familiar tothose skilled in the art. Similarly, any necessary files for performingthe functions attributed to the vehicle control system 204 may be storedlocally on the respective vehicle control system 204 and/or remotely, asappropriate. The databases or data stores may be a relational database,and the data storage module 320 may be adapted to store, update, andretrieve data in response to specifically-formatted commands. The datastorage module 320 may also perform data management functions for anyflat file, object oriented, or other type of database or data store.

A first data store that may be part of the vehicle control environment300 is a profile data store 252 for storing data about user profiles anddata associated with the users. A system data store 208 can include dataused by the vehicle control system 204 and/or one or more of thecomponents 324-352 to facilitate the functionality described herein. Thedata stores 208 and/or 252 may be as described in conjunction with FIGS.1 and/or 12A-12D.

The user interface/input interfaces 324 may be as described herein forproviding information or data and/or for receiving input or data from auser. Vehicle systems 328 can include any of the mechanical, electrical,electromechanical, computer, or other systems associated with thefunction of the vehicle 100. For example, vehicle systems 328 caninclude one or more of, but is not limited to, the steering system, thebraking system, the engine and engine control systems, the electricalsystem, the suspension, the drive train, the cruise control system, theradio, the heating, ventilation, air conditioning (HVAC) system, thewindows and/or doors, etc. These systems are well known in the art andwill not be described further.

Examples of the other systems and subsystems 324-352 may be as describedfurther herein. For example, the user interface(s)/input interface(s)324 may be as described in FIGS. 2 and 8B; the vehicle subsystems 328may be as described in FIG. 6a et. seq.; the user interaction subsystem332 may be as described in conjunction with the user/device interactionsubsystem 817 of FIG. 8B; the Navigation subsystem 336 may be asdescribed in FIGS. 6A and 8C; the sensor(s)/sensor subsystem 340 may beas described in FIGS. 7A and 7B; the communication subsystem 344 may beas described in FIGS. 2, 4, 5B, 5C, and 9; the media subsystem 348 maybe as described in FIG. 8A; and, the device interaction subsystem 352may be as described in FIG. 2 and in conjunction with the user/deviceinteraction subsystem 817 of FIG. 8B.

FIG. 4 illustrates an optional communications channel architecture 400and associated communications components. FIG. 4 illustrates some of theoptional components that can be interconnected via the communicationchannels/zones 404. Communication channels/zones 404 can carryinformation on one or more of a wired and/or wireless communicationslink with, in the illustrated example, there being three communicationschannels/zones, 408, 412, and 416.

This optional environment 400 can also include an IP router 420, anoperator cluster 424, one or more storage devices 428, one or moreblades, such as master blade 432, and computational blades 436 and 440.Additionally, the communications channels/zones 404 can interconnect oneor more displays, such as, remote display 1 444, remote display N 448,and console display 452. The communications channels/zones 404 alsointerconnect an access point 456, a Bluetooth® access point/USB hub 460,a Femtocell 464, a storage controller 468, that is connected to one ormore of USB devices 472, DVDs 476, or other storage devices 480. Toassist with managing communications within the communication channel,the environment 400 optionally includes a firewall 484 which will bediscussed hereinafter in greater detail. Other components that couldalso share the communications channel/zones 404 include GPS 488, mediacontroller 492, which is connected to one or more media sources 496, andone or more subsystems, such as subsystem switches 498.

Optionally, the communications channels/zones 404 can be viewed as anI/O network or bus where the communications channels are carried on thesame physical media. Optionally, the communication channels 404 can besplit amongst one or more physical media and/or combined with one ormore wireless communications protocols. Optionally, the communicationschannels 404 can be based on wireless protocols with no physical mediainterconnecting the various elements described herein.

The environment 400 shown in FIG. 4 can include a collection of bladeprocessors that are housed in a “crate.” The crate can have a PC-stylebackplane connector 408 and a backplane Ethernet 408 that allows thevarious blades to communicate with one another using, for example, anEthernet.

Various other functional elements illustrated in FIG. 4 can beintegrated into this crate architecture with, as discussed hereinafter,various zones utilized for security. Optionally, as illustrated in FIG.4, the backplane 404/408 can have two separate Ethernet zones that mayor may not be on the same communications channel. Optionally, the zonesexist on a single communications channel on the I/O network/bus 408.Optionally, the zones are actually on different communications channels,e.g., 412, 416; however, the implementation is not restricted to anyparticular type of configuration. Rather, as illustrated in FIG. 4,there can be a red zone 417 and a green zone 413, and the I/O backplaneon the network/bus 408 that enables standard I/O operations. Thisbackplane or I/O network/bus 408 also optionally can provide powerdistribution to the various modules and blades illustrated in FIG. 4.The red and green Ethernet zones, 417 and 413 respectively, can beimplemented as Ethernet switches, with one on each side of the firewall484. Two Ethernets (untrusted and trusted) are not connected inaccordance with an optional embodiment. Optionally, the connectorgeometry for the firewall can be different for the Ethernet zones thanfor the blades that are a part of the system.

The red zone 417 only needs to go from the modular connector to theinput side of the backplane connector of the firewall 484. While FIG. 4indicates that there are five external red zone connectors to thefirewall 484, provisions can be made for any number of ports with theconnections being made at the access point 456, the Bluetooth® accesspoint (combo controller) 460, Femtocell 464, storage controller 468,and/or firewall 484. Optionally, the external port connections can bemade through a manufacturer configurable modular connector panel, andone or more of the red zone Ethernet ports could be available through acustomer supplied crate which allows, for example, wired Ethernetconnections from a bring-your-own-device (BYOD) to the firewall 484.

The green zone 413 goes from the output side of the firewall 484 andgenerally defines the trusted Ethernet. The Ethernet on the backplane408 essentially implements an Ethernet switch for the entire system,defining the Ethernet backbone of the vehicle 104. All other modules,e.g., blades, etc., can connect to a standard backplane bus and thetrusted Ethernet. Some number of switch ports can be reserved to connectto an output modular connector panel to distribute the Ethernetthroughout the vehicle 104, e.g., connecting such elements as theconsole display 452, remote displays 444, 448, GPS 488, etc. Optionally,only trusted components, either provided or approved by the manufacturerafter testing, can be attached to the green zone 413, which is bydefinition in the trusted Ethernet environment.

Optionally, the environment 400, shown in FIG. 4, utilizes IPv6 overEthernet connections wherever possible. Using, for example, the Broadcomsingle-twisted pair Ethernet technology, wiring harnesses are simplifiedand data transmission speeds are maximized. However, while the Broadcomsingle-twisted pair Ethernet technology can be used, in general, systemsand methods can work comparably well with any type of well-knownEthernet technology or other comparable communications technology.

As illustrated in FIG. 4 the I/O network/bus 408 is a split-bus conceptthat contains three independent bus structures:

The red zone 417—the untrusted Ethernet environment. This zone 417 maybe used to connect network devices and customer provided devices to thevehicle information system with these devices being on the untrustedside of the firewall 484.

The green zone 413—the trusted Ethernet environment, this zone 413 canbe used to connect manufacturer certified devices such as GPS units,remote displays, subsystem switches, and the like, to the vehiclenetwork 404. Manufacturer certified devices can be implemented byvendors that allow the vehicle software system to validate whether ornot a device is certified to operate with the vehicle 100. Optionally,only certified devices are allowed to connect to the trusted side of thenetwork.

The I/O bus 409—the I/O bus may be used to provide power and datatransmission to bus-based devices such as the vehicle solid state drive,the media controller blade 492, the computational blades 436, 440, andthe like.

As an example, the split-bus structure can have the following minimumconfiguration:

Two slots for the red zone Ethernet;

One slot for built-in LTE/WiMax access 420 from the car to other networkresources such as the cloud/Internet;

One slot for user devices or bring-your-own device access, this slot canimplement, for example, WiFi, Bluetooth®, and/or USB connectivity 456,which can be provided in, for example, the customer crate;

One slot for combined red zone and green zone Ethernet, this slot can bereserved for the firewall controller;

Two slots for computational blades. Here the two computation blades areillustratively as shown the optional master blade and the multimediablade or controller 492 which can be provided as standard equipment; and

The expansion controller that allows the I/O bus to be extended andprovides additional Ethernet switch ports for one or more of the red orgreen zones, which may require that the basic green zone Ethernet switchimplementation will support additional ports beyond the initial threethat are needed for the basic exemplary system.

It should be possible to build 8 or 16 or more Ethernet switches thatallow for the expansion with existing component(s) in a straight-forwardmanner.

The red zone 417 can be implemented as an 8-port Ethernet switch thathas three actual bus ports within the crate with the remaining fiveports being available on the customer crate. The crate implements redzone slots for the firewall controller 484, the combo controller whichincludes WiFi, Bluetooth®, USB hub (456, 460) and the IP router 420.

The firewall controller 484 can have a dedicated slot that bridges thered zone 417, green zone 413, and uses the I/O bus for powerconnections. In accordance with an optional low cost implementation, thefirewall 484 can be implemented by a dummy module that simply bridgesthe red zone 417 and the green zone 413 without necessarily providingany firewall functionality. The combo controller 460 that includes theWiFi, Bluetooth®, and USB hub can be provided for consumer deviceconnections. This controller can also implement the IPv6 (un-routable)protocol to insure that all information is packetized for transmissionvia IP over the Ethernet in the I/O network/bus 408.

The combo controller 460 with the USB hub can have ports in the customercrate. The combo controller 460 can implement USB discovery functionsand packetizes the information for transmission via IP over Ethernet.The combo controller 460 can also facilitate installation of the correctUSB driver for the discovered device, such as a BYOD from the user. Thecombo controller 460 and USB hub can then map the USB address to a“local” IPv6 address for interaction with one or more of thecomputational blades which is generally going to be the media controller492.

The IP router 420 can implement Internet access through a manufacturerprovided service. This service can allow, for example, a manufacturer tooffer value-added services to be integrated into the vehicle informationsystems. The existence of the manufacturer provided Internet access canalso allow the “e-Call” function and other vehicle data recorderfunctions to be implemented. IP router 420 also allows, for example,WiMax, 4G LTE, and other connections to the Internet through a serviceprovider that can be, for example, contracted by the manufacturer.Internally, the IP router 420 can allow cellular handset connections tothe Internet through a Femtocell 464 that is part of the IP routerimplementation. The IP router 420, with the Femtocell 464, can alsoallow a cone of silence functionality to be implemented. The IP router420 can be an optional component for a vehicle provided by, for example,the manufacturer, a dealer, or installed by a user. In the absence ofthe IP router 420, it is possible to connect a consumer handheld deviceto the I/O network/bus 408 using, for example, either WiFi or Bluetooth®456, 460. While functionality may be somewhat reduced when using ahandheld device instead of a built-in Ethernet connection, systems andmethods of this invention can also work utilizing this consumer handhelddevice which then connects to the Internet via, for example, WiMax, 4G,4G LTE, or the like.

FIGS. 5A-5C show configurations of a vehicle 104. In general, a vehicle104 may provide functionality based at least partially on one or moreareas, zones, and distances, associated with the vehicle 104.Non-limiting examples of this functionality are provided herein below.

An arrangement or configuration for sensors within a vehicle 104 is asshown in FIG. 5A. The sensor arrangement 500 can include one or moreareas 508 within the vehicle. An area can be a larger part of theenvironment inside or outside of the vehicle 104. Thus, area one 508Amay include the area within the trunk space or engine space of thevehicle 104 and/or the front passenger compartment. Area two 508B mayinclude a portion of the interior space 108 (e.g., a passengercompartment, etc.) of the vehicle 104. The area N, 508N, may include thetrunk space or rear compartment area, when included within the vehicle104. The interior space 108 may also be divided into other areas. Thus,one area may be associated with the front passenger's and driver'sseats, a second area may be associated with the middle passengers'seats, and a third area may be associated with a rear passenger's seat.Each area 508 may include one or more sensors that are positioned oroperate to provide environmental information about that area 508.

Each area 508 may be further separated into one or more zones 512 withinthe area 508. For example, area 1 508A may be separated into zone A512A, and zone B 512B. Each zone 512 may be associated with a particularportion of the interior occupied by a passenger. For example, zone A512A may be associated with a driver. Zone B 512B, may be associatedwith a front passenger. Each zone 512 may include one or more sensorsthat are positioned or configured to collect information about theenvironment or ecosystem associated with that zone or person.

A passenger area 508B may include more than two zones as described inconjunction with area 508A. For example, area 508B may include threezones, 512C, 512D, and 512E. These three separate zones 512C, 512D, and512E may be associated with three passenger seats typically found in therear passenger area of a vehicle 104. An area 508N and may include asingle zone 512N as there may be no separate passenger areas but mayinclude a single trunk area within the vehicle 104. The number of zones512 is unlimited within the areas as the areas are also unlimited insidethe vehicle 104. Further, it should be noted that there may be one orareas 508 or zones 512 that may be located outside the vehicle 104 thatmay have a specific set of sensors associated therewith.

Optionally, each area/access point 508, 456, 516, 520, and/or zone 512,associated with a vehicle 104, may comprise one or more sensors todetermine a presence of a user 216 and/or device 212, 248 in and/oradjacent to each area 508, 456, 516, 520, and/or zone 512. The sensorsmay include vehicle sensors 242 and/or non-vehicle sensors 236 asdescribed herein. It is anticipated that the sensors may be configuredto communicate with a vehicle control system 204 and/or the diagnosticcommunications module 256. Additionally or alternatively, the sensorsmay communicate with a device 212, 248. The communication of sensorswith the vehicle 104 may initiate and/or terminate the control of device212, 248 features. For example, a vehicle operator may be located in asecond outside area 520 associated with a vehicle 104. As the operatorapproaches the first outside area 516, associated with the vehicle 104,the vehicle control system 204 may determine to control featuresassociated with one or more device 212, 248 and diagnosticcommunications module 256.

Optionally, the location of the device 212, 248 relative to the vehicle104 may determine vehicle functionality and/or features to be providedand/or restricted to a user 216. By way of example, a device 212, 248associated with a user 216 may be located at a second outside area 520from the vehicle 104. In this case, and based at least partially on thedistance of the device 212, 248 from the vehicle 104 (e.g., provided bydetecting the device 212, 248 at or beyond the second outside area 520)the vehicle 104 may lock one or more features (e.g., ignition access,vehicle access, communications ability, etc.) associated with thevehicle 104. Optionally, the vehicle 104 may provide an alert based onthe distance of the device 212, 248 from the vehicle 104. Continuing theexample above, once the device 212, 248 reaches the first outside area516 of the vehicle 104 at least one of the vehicle features may beunlocked. For instance, by reaching the first outside area 516, thevehicle 104 may unlock a door of the vehicle 104. In some cases, whenthe device is detected to be inside the vehicle 104, the various sensors236, 242 may determine that the user 216 is in an area 508 and/or zone512. As is further described herein, features of the vehicle 104, device212, 248, and/or other components may be controlled based on rulesstored in a memory.

FIG. 5B illustrates optional internal vehicle communications between oneor more of the vehicle and one or more devices or between devices.Various communications can occur utilizing one or more Bluetooth®, NFC,WiFi, mobile hot spot, point-to-point communications,point-to-multipoint other point communications, an ad hoc network, or ingeneral any known communications protocol over any known communicationsmedia or media-types.

Optionally, various types of internal vehicle communications can befacilitated using an access point 456 that utilizes one or more ofBluetooth®, NFC, WiFi, wireless Ethernet, mobile hot spot technology, orthe like. Upon being connected with, and optionally authenticated to theaccess point 456, the connected device is able to communicate with oneor more of the vehicle and one or more other devices that are connectedto the access point 456. The type of connection to the access point 456can be based on, for example, the zone 512, in which the device islocated.

The user may identify their zone 512 in conjunction with anauthentication procedure to the access point 456. For example, a driverin zone A 512A, upon authenticating to the access point 456, can causethe access point 456 to send a query to the device asking the deviceuser in which zone 512 they are located. As discussed hereinafter, thezone 512 the user device is located in may have an impact on the type ofcommunications, available bandwidth, the types of other devices orvehicle systems or subsystems the device could communicate with, and thelike. As a brief introduction, internal communications with zone A 512Amay be given preferential treatment over those communicationsoriginating from area 2 508B, which could have in itself, preferentialtreatment over communications originating within area N 508N.

Moreover, the device in zone A 512A can include profile information thatgoverns the other devices that are allowed to connect to the accesspoint 456 and what those devices have access to, how they cancommunicate, how much bandwidth they are allocated, and the like. While,optionally, the device associated with zone A 512A will be consideredthe “master” controller of the profile that governs the internal vehiclecommunications, it should be appreciated that this was arbitrarilychosen since it is assumed that there will always be a driver in a carthat is present in zone A 512A. However, it should be appreciated thedriver in zone A 512A, for example, may not have a communications devicein which case a device associated with one of the other areas or zones,such as zone B 512B, area 2 508B, or area N 508N could also beassociated with or control this master profile.

Optionally, various devices located within the various zones 512 canconnect using, for example, ports provided by access point 456 orBluetooth® access point/USB hub 460 as illustrated in FIG. 4. Similarly,the device(s) could connect utilizing the Femtocell 464 and optionallybe directly connected via, for example, a standard Ethernet port.

As discussed, each one of the areas, area 1 508A, area 2 508B, and areaN 508N, can each have associated therewith a profile that governs, forexample, how many and what types of devices can connect from that area508, bandwidth allocated to that area 508, the types of media or contentavailable to device(s) within that area 508, the interconnection ofdevices within that area 508 or between areas 508, or, in general, cancontrol any aspect of communication of an associated device with any oneor more other associated devices/vehicle systems within the vehicle 104.

Optionally, area 2 508B devices can be provided with full access tomultimedia and infotainment available within the vehicle 104, however,devices in area 2 508B may be restricted from any access to vehiclefunctions. Only devices in area 1 508A may be able to access vehiclecontrol functions such as when “parents” are located in area 1 508A andthe children are located in area 2 508B. Optionally, devices found inzone E 512E of area 2 508B may be able to access limited vehicle controlfunctionality such as climate control within area 2. Similarly, devicesin area N 508N may be able to control climate features within zone N512N.

As will be appreciated, profiles can be established that allowmanagement of communications within each of the areas 508, and furtheroptionally within each of the zones 512. The profile can be granular innature controlling not only what type of devices can connect within eachzone 512, but how those devices can communicate with other devicesand/or the vehicle and types of information that can be communicated.

To assist with identifying a location of a device within a zone 512, anumber of different techniques can be utilized. One optional techniqueinvolves one or more of the vehicle sensors detecting the presence of anindividual within one of the zones 512. Upon detection of an individualin a zone 512, communications subsystems 344 and the access point 456can cooperate to not only associate the device within the zone 512 withthe access point 456 but to also determine the location of the devicewithin an area, and optionally within a zone 512. Once the device isestablished within a zone 512, a profile associated with the vehicle 104can store information identifying that device and/or a person andoptionally associating it with a particular zone 512 as a default. Asdiscussed, there can be a master profile optionally associated with thedevice in zone A 512A, this master profile can govern communicationswith the communications subsystems 340 and where communications withinvehicle 104 are to occur.

Some optional profiles are illustrated below where the Master Profilegoverns other device connectivity:

Master Profile:

Area 1 508A Area 2 508B Area N 508N Other All Allow Access No AccessMaster Profile Communications to Infotainment acts as Firewall andRouter All Vehicle Allow Area 2 Controls Climate Control

Secondary Profile (e.g., device in Zone B 512B, Area 1 508A)

Area 1 508A Area 2 508B Area N 508N Other All Allow Access Allow AccessMaster Profile Communications to Infotainment to Infotainment acts asFirewall and Router All Vehicle Allow Area 2 Allow Area 2 ControlsClimate Control Climate Control

Secondary Profile, Option 2

Area 1 508A Area 2 508B Area N 508N Other All Allow Access to AllowAccess Communications Infotainment, Internet to Infotainment All VehicleControls Allow Area 2 Allow Area 2 Except Driver-centric Climate ControlClimate Control Controls

Some optional profiles are illustrated below where the Area/Zone governsdevice connectivity:

Area 2 508B Profile:

Area 1 508A Area 2 508B Area N 508N Other No Communications Allow Accessto with Area 1 Devices Infotainment, Allow Access to Other Area 2 orZone N Devices, Internet No Vehicle Controls Allow Area 2 ClimateControl

Area N 508N Profile:

Area 1 508A Area 2 508B Area N 508N Other Communications Allow Access towith Area 1, Zone B Infotainment, Allow Device Access to Other Area N orZone N Devices No Vehicle Controls Allow Area N Climate Control

Area 2 508B Profile:

Area 1 508A Area 2 508B Area N 508N Other Media Sharing with AllowAccess to Area 1, Zone B and Infotainment, Allow Vehicle Access to OtherArea 2 or Zone N Devices, Internet and Femtocell No Vehicle Controls

Optionally, a user's device, such as a SmartPhone, can store in, forexample a profile, with which zone 512 the user's device is associated.Then, assuming the user sits in the same zone 512 and area 508 aspreviously, the user's device can re-establish the same communicationsprotocols with the access point 456 as were previously established.

In addition or in the alternative, the areas 508 and zones 512 can haveassociated therewith restrictions as to which one or more other user'sdevices with which users' devices can connect. For example, a firstuser's device can connect with any other user device in area 2 508B orarea N 508N, however is restricted from connecting with a user device inarea 1 508A, zone A 512A. However, the first user device may be able tocommunicate with another user's device that is located in area 1 508A,zone B 512B. These communications can include any type of standardcommunications such as sharing content, exchanging messages, forwardingor sharing multimedia or infotainment, or in general can include anycommunications that would ordinarily be available between two devicesand/or the vehicle and vehicle systems. As discussed, there may berestrictions on the type of communications that can be sent to thedevice in area 1 508A, zone A 512A. For example, the user's device inarea 1 508A, zone A 512A may be restricted from receiving one or more oftext messages, multimedia, infotainment, or in general anything that canbe envisioned as a potential distraction to the driver. Moreover, itshould be appreciated that the communications between the variousdevices and the various zones 512 need not necessarily occur with theassistance of access point 456, but the communications could also occurdirectly between the device(s).

FIG. 5C outlines optional internal vehicle communications between one ormore of the vehicle and one or more devices. More specifically, FIG. 5Cillustrates an example of vehicle communications where the vehicle 104is equipped with the necessary transceivers to provide a mobile hot spotfunctionality to any user device(s) therein, such as user devices 248Aand 248N.

Optionally, and as discussed above, one or more user devices can connectto the access point 456. This access point 456 is equipped to handlecommunications routing to not only the communication network/buses 224for intra-vehicle communications, but optionally can also communicatewith, for example, the Internet or the cloud, in cooperation withtransceiver 260. Optionally included is a firewall 484 that has thecapability of not only blocking certain types of content, such as amalicious content, but can also operate to exclude certain type ofcommunications from emanating from the vehicle 104 and transceiver 260.As will be appreciated, various profiles could be established in thefirewall 484 that controls not only the type of communications that canbe received at the vehicle 104, but the type of communications that canbe sent from the vehicle 104.

The transceiver 260 can be any type of well-known wireless transceiverthat communicates using a known communications protocol such as WiMax,4G, 4G LTE, 3G, or the like. The user devices can communicate via, forexample, WiFi link 248 with the access point 456, with the transceiver260 providing Internet connectivity to the various user devices. As willbe appreciated, there may need to be an account associated withtransceiver 260 with a wireless carrier to provide data and/or voiceconnectivity to enable the user devices to communicate with theInternet. Typically, the account is established on a month-to-monthbasis with an associated fee but could also be performed based on theamount of data to be transmitted, received, or in any other manner.

Moreover, one or more of the user's devices and access point 456 canmaintain profile information that governs how the user's devices areable to communicate with other devices, and optionally the Internet.Optionally, a profile can exist that only allows the user's devices tocommunicate with other user's devices and/or the vehicle, multimediaand/or the vehicle infotainment system, and may not be allowed access tothe Internet via transceiver 260. The profile can stipulate that theuser's device could connect to the Internet via transceiver 260 for aspecified period of time and/or up to a certain amount of data usage.The user's device can have full access to the Internet via transceiver260 with no limit on time or data usage which would reduce the datausage of the user's device since it is connected via WiFi to the accesspoint 456, but however, would increase the data usage by transceiver260, and therefore, shift the billing for that data usage to thetransceiver 260 instead of the user's device. Still further, and aspreviously discussed, the various profiles may stipulate which user'sdevice has priority for use of the bandwidth provided by the transceiver260. For example, a user's device located area 1 508A, zone A 512A maybe given preferential routing treatment of data above that of a user'sdevice in zone N 512N. In this manner, for example, a driver would begiven priority for Internet access above that of the passengers. Thiscould become important, for example, when the driver is trying to obtaintraffic or direction information or, for example, when the vehicle isperforming a download to update various software features.

As will be appreciated, the optional firewall 484 can cooperate with theaccess point 456 and the various profiles that area 508 associated withthe various devices within the vehicle 104 and can fully implementcommunications restrictions, control bandwidth limits, Internetaccessibility, malicious software blocking, and the like. Moreover, theoptional firewall 484 can be accessed by an administrator with one ormore of these configuration settings edited through an administrator'scontrol panel. For example, in a scenario where parents are always inarea 1 508A, it may be appropriate to give all of the user's devices inarea 1 508A full access to the Internet utilizing transceiver 260,however, while restricting access and/or bandwidth to any other userdevices within the vehicle 104. As the user's device and profile wouldbe known by the firewall 484, upon the user's device being associatedwith the access point 456, the firewall 484 and transceiver 260 can beconfigured to allow communications in accordance with the storedprofile.

A set of sensors or vehicle components 600 associated with the vehicle104 may be as shown in FIG. 6A. The vehicle 104 can include, among manyother components common to vehicles, wheels 607, a power source 609(such as an engine, motor, or energy storage system (e.g., battery orcapacitive energy storage system)), a manual or automatic transmission612, a manual or automatic transmission gear controller 616, a powercontroller 620 (such as a throttle), a vehicle control system 204, thedisplay device 212, a braking system 636, a steering wheel 640, a powersource activation/deactivation switch 644 (e.g., an ignition), anoccupant seating system 648, a wireless signal receiver 653 to receivewireless signals from signal sources such as roadside beacons and otherelectronic roadside devices, and a satellite positioning system receiver657 (e.g., a Global Positioning System (“GPS”) (US), GLONASS (Russia),Galileo positioning system (EU), Compass navigation system (China), andRegional Navigational Satellite System (India) receiver), driverlesssystems (e.g., cruise control systems, automatic steering systems,automatic braking systems, etc.).

The vehicle 104 can include a number of sensors in wireless or wiredcommunication with the vehicle control system 204 and/or display device212, 248 to collect sensed information regarding the vehicle state,configuration, and/or operation. Exemplary sensors may include one ormore of, but are not limited to, wheel state sensor 660 to sense one ormore of vehicle speed, acceleration, deceleration, wheel rotation, wheelspeed (e.g., wheel revolutions-per-minute), wheel slip, and the like, apower source energy output sensor 664 to sense a power output of thepower source 609 by measuring one or more of current engine speed (e.g.,revolutions-per-minute), energy input and/or output (e.g., voltage,current, fuel consumption, and torque) (e.g., turbine speed sensor,input speed sensor, crankshaft position sensor, manifold absolutepressure sensor, mass flow sensor, and the like), and the like, a switchstate sensor 668 to determine a current activation or deactivation stateof the power source activation/deactivation switch 644, a transmissionsetting sensor 670 to determine a current setting of the transmission(e.g., gear selection or setting), a gear controller sensor 672 todetermine a current setting of the gear controller 616, a powercontroller sensor 674 to determine a current setting of the powercontroller 620, a brake sensor 676 to determine a current state (brakingor non-braking) of the braking system 636, a seating system sensor 678to determine a seat setting and current weight of seated occupant, ifany) in a selected seat of the seating system 648, exterior and interiorsound receivers 690 and 692 (e.g., a microphone, sonar, and other typeof acoustic-to-electric transducer or sensor) to receive and convertsound waves into an equivalent analog or digital signal. Examples ofother sensors (not shown) that may be employed include safety systemstate sensors to determine a current state of a vehicular safety system(e.g., air bag setting (deployed or undeployed) and/or seat belt setting(engaged or not engaged)), light setting sensor (e.g., currentheadlight, emergency light, brake light, parking light, fog light,interior or passenger compartment light, and/or tail light state (on oroff)), brake control (e.g., pedal) setting sensor, accelerator pedalsetting or angle sensor, clutch pedal setting sensor, emergency brakepedal setting sensor, door setting (e.g., open, closed, locked orunlocked) sensor, engine temperature sensor, passenger compartment orcabin temperature sensor, window setting (open or closed) sensor, one ormore interior-facing or exterior-facing cameras or other imaging sensors(which commonly convert an optical image into an electronic signal butmay include other devices for detection objects such as anelectromagnetic radiation emitter/receiver that emits electromagneticradiation and receives electromagnetic waves reflected by the object) tosense objects, such as other vehicles and pedestrians and optionallydetermine the distance, trajectory and speed of such objects, in thevicinity or path of the vehicle, odometer reading sensor, trip mileagereading sensor, wind speed sensor, radar transmitter/receiver output,brake wear sensor, steering/torque sensor, oxygen sensor, ambientlighting sensor, vision system sensor, ranging sensor, parking sensor,heating, venting, and air conditioning (HVAC) sensor, water sensor,air-fuel ratio meter, blind spot monitor, hall effect sensor,microphone, radio frequency (RF) sensor, infrared (IR) sensor, vehiclecontrol system sensors, wireless network sensor (e.g., Wi-Fi and/orBluetooth® sensor), cellular data sensor, and other sensors eitherfuture-developed or known to those of skill in the vehicle art.

In the depicted vehicle embodiment, the various sensors can be incommunication with the display device 212, 248 and vehicle controlsystem 204 via signal carrier network 224. As noted, the signal carriernetwork 224 can be a network of signal conductors, a wireless network(e.g., a radio frequency, microwave, or infrared communication systemusing a communications protocol, such as Wi-Fi), or a combinationthereof. The vehicle control system 204 may also provide signalprocessing of one or more sensors, sensor fusion of similar and/ordissimilar sensors, signal smoothing in the case of erroneous “wildpoint” signals, and/or sensor fault detection. For example, rangingmeasurements provided by one or more RF sensors may be combined withranging measurements from one or more IR sensors to determine one fusedestimate of vehicle range to an obstacle target.

The control system 204 may receive and read sensor signals, such aswheel and engine speed signals, as a digital input comprising, forexample, a pulse width modulated (PWM) signal. The processor 304 can beconfigured, for example, to read each of the signals into a portconfigured as a counter or configured to generate an interrupt onreceipt of a pulse, such that the processor 304 can determine, forexample, the engine speed in revolutions per minute (RPM) and the speedof the vehicle in miles per hour (MPH) and/or kilometers per hour (KPH).One skilled in the art will recognize that the two signals can bereceived from existing sensors in a vehicle comprising a tachometer anda speedometer, respectively. Alternatively, the current engine speed andvehicle speed can be received in a communication packet as numericvalues from a conventional dashboard subsystem comprising a tachometerand a speedometer. The transmission speed sensor signal can be similarlyreceived as a digital input comprising a signal coupled to a counter orinterrupt signal of the processor 304 or received as a value in acommunication packet on a network or port interface from an existingsubsystem of the vehicle 104. The ignition sensor signal can beconfigured as a digital input, wherein a HIGH value represents that theignition is on and a LOW value represents that the ignition is OFF.Three bits of the port interface can be configured as a digital input toreceive the gear shift position signal, representing eight possible gearshift positions. Alternatively, the gear shift position signal can bereceived in a communication packet as a numeric value on the portinterface. The throttle position signal can be received as an analoginput value, typically in the range 0-5 volts. Alternatively, thethrottle position signal can be received in a communication packet as anumeric value on the port interface. The output of other sensors can beprocessed in a similar fashion.

Other sensors may be included and positioned in the interior space 108of the vehicle 104. Generally, these interior sensors obtain data aboutthe health of the driver and/or passenger(s), data about the safety ofthe driver and/or passenger(s), and/or data about the comfort of thedriver and/or passenger(s). The health data sensors can include sensorsin the steering wheel that can measure various health telemetry for theperson (e.g., heart rate, temperature, blood pressure, blood presence,blood composition, etc.). Sensors in the seats may also provide forhealth telemetry (e.g., presence of liquid, weight, weight shifts,etc.). Infrared sensors could detect a person's temperature; opticalsensors can determine a person's position and whether the person hasbecome unconscious. Other health sensors are possible and includedherein.

Safety sensors can measure whether the person is acting safely. Opticalsensors can determine a person's position and focus. If the person stopslooking at the road ahead, the optical sensor can detect the lack offocus. Sensors in the seats may detect if a person is leaning forward ormay be injured by a seat belt in a collision. Other sensors can detectthat the driver has at least one hand on a steering wheel. Other safetysensors are possible and contemplated as if included herein.

Comfort sensors can collect information about a person's comfort.Temperature sensors may detect a temperature of the interior cabin.Moisture sensors can determine a relative humidity. Audio sensors candetect loud sounds or other distractions. Audio sensors may also receiveinput from a person through voice data. Other comfort sensors arepossible and contemplated as if included herein.

FIG. 6B shows an interior sensor configuration for one or more zones 512of a vehicle 104 optionally. Optionally, the areas 508 and/or zones 512of a vehicle 104 may include sensors that are configured to collectinformation associated with the interior 108 of a vehicle 104. Inparticular, the various sensors may collect environmental information,user information, and safety information, to name a few. Embodiments ofthese sensors may be as described in conjunction with FIGS. 7A-8B.

Optionally, the sensors may include one or more of optical, or image,sensors 622A-B (e.g., cameras, etc.), motion sensors 624A-B (e.g.,utilizing RF, IR, and/or other sound/image sensing, etc.), steeringwheel user sensors 642 (e.g., heart rate, temperature, blood pressure,sweat, health, etc.), seat sensors 677 (e.g., weight, load cell,moisture, electrical, force transducer, etc.), safety restraint sensors679 (e.g., seatbelt, airbag, load cell, force transducer, etc.),interior sound receivers 692A-B, environmental sensors 694 (e.g.,temperature, humidity, air, oxygen, etc.), and the like.

The image sensors 622A-B may be used alone or in combination to identifyobjects, users 216, and/or other features, inside the vehicle 104.Optionally, a first image sensor 622A may be located in a differentposition within a vehicle 104 from a second image sensor 622B. When usedin combination, the image sensors 622A-B may combine captured images toform, among other things, stereo and/or three-dimensional (3D) images.The stereo images can be recorded and/or used to determine depthassociated with objects and/or users 216 in a vehicle 104. Optionally,the image sensors 622A-B used in combination may determine the complexgeometry associated with identifying characteristics of a user 216. Forinstance, the image sensors 622A-B may be used to determine dimensionsbetween various features of a user's face (e.g., the depth/distance froma user's nose to a user's cheeks, a linear distance between the centerof a user's eyes, and more). These dimensions may be used to verify,record, and even modify characteristics that serve to identify a user216. As can be appreciated, utilizing stereo images can allow for a user216 to provide complex gestures in a 3D space of the vehicle 104. Thesegestures may be interpreted via one or more of the subsystems asdisclosed herein. Optionally, the image sensors 622A-B may be used todetermine movement associated with objects and/or users 216 within thevehicle 104. It should be appreciated that the number of image sensorsused in a vehicle 104 may be increased to provide greater dimensionalaccuracy and/or views of a detected image in the vehicle 104.

The vehicle 104 may include one or more motion sensors 624A-B. Thesemotion sensors 624A-B may detect motion and/or movement of objectsinside the vehicle 104. Optionally, the motion sensors 624A-B may beused alone or in combination to detect movement. For example, a user 216may be operating a vehicle 104 (e.g., while driving, etc.) when apassenger in the rear of the vehicle 104 unbuckles a safety belt andproceeds to move about the vehicle 104. In this example, the movement ofthe passenger could be detected by the motion sensors 624A-B.Optionally, the user 216 could be alerted of this movement by one ormore of the devices 212, 248 in the vehicle 104. In another example, apassenger may attempt to reach for one of the vehicle control features(e.g., the steering wheel 640, the console, icons displayed on the headunit and/or device 212, 248, etc.). In this case, the movement (i.e.,reaching) of the passenger may be detected by the motion sensors 624A-B.Optionally, the path, trajectory, anticipated path, and/or some otherdirection of movement/motion may be determined using the motion sensors624A-B. In response to detecting the movement and/or the directionassociated with the movement, the passenger may be prevented frominterfacing with and/or accessing at least some of the vehicle controlfeatures (e.g., the features represented by icons may be hidden from auser interface, the features may be locked from use by the passenger,combinations thereof, etc.). As can be appreciated, the user 216 may bealerted of the movement/motion such that the user 216 can act to preventthe passenger from interfering with the vehicle 104 controls.Optionally, the number of motion sensors in a vehicle 104, or areas of avehicle 104, may be increased to increase an accuracy associated withmotion detected in the vehicle 104.

The interior sound receivers 692A-B may include, but are not limited to,microphones and other types of acoustic-to-electric transducers orsensors. Optionally, the interior sound receivers 692A-B may beconfigured to receive and convert sound waves into an equivalent analogor digital signal. The interior sound receivers 692A-B may serve todetermine one or more locations associated with various sounds in thevehicle 104. The location of the sounds may be determined based on acomparison of volume levels, intensity, and the like, between soundsdetected by two or more interior sound receivers 692A-B. For instance, afirst interior sound receiver 692A may be located in a first area of thevehicle 104 and a second interior sound receiver 692B may be located ina second area of the vehicle 104. If a sound is detected at a firstvolume level by the first interior sound receiver 692A and a second,higher, volume level by the second interior sound receiver 692B in thesecond area of the vehicle 104, the sound may be determined to be closerto the second area of the vehicle 104. As can be appreciated, the numberof sound receivers used in a vehicle 104 may be increased (e.g., morethan two, etc.) to increase measurement accuracy surrounding sounddetection and location, or source, of the sound (e.g., viatriangulation, etc.).

Seat sensors 677 may be included in the vehicle 104. The seat sensors677 may be associated with each seat and/or zone 512 in the vehicle 104.Optionally, the seat sensors 677 may provide health telemetry and/oridentification via one or more of load cells, force transducers, weightsensors, moisture detection sensor, electrical conductivity/resistancesensor, and the like. For example, the seat sensors 677 may determinethat a user 216 weighs 180 lbs. This value may be compared to user datastored in memory to determine whether a match exists between thedetected weight and a user 216 associated with the vehicle 104. Inanother example, if the seat sensors 677 detect that a user 216 isfidgeting, or moving, in a seemingly uncontrollable manner, the systemmay determine that the user 216 has suffered a nervous and/or muscularsystem issue (e.g., seizure, etc.). The vehicle control system 204 maythen cause the vehicle 104 to slow down and in addition or alternativelythe automobile controller 8104 (described below) can safely take controlof the vehicle 104 and bring the vehicle 104 to a stop in a safelocation (e.g., out of traffic, off a freeway, etc).

Health telemetry and other data may be collected via the steering wheeluser sensors 642. Optionally, the steering wheel user sensors 642 maycollect heart rate, temperature, blood pressure, and the like,associated with a user 216 via at least one contact disposed on or aboutthe steering wheel 640.

The safety restraint sensors 679 may be employed to determine a stateassociated with one or more safety restraint devices in a vehicle 104.The state associated with one or more safety restraint devices may serveto indicate a force observed at the safety restraint device, a state ofactivity (e.g., retracted, extended, various ranges of extension and/orretraction, deployment, buckled, unbuckled, etc.), damage to the safetyrestraint device, and more.

Environmental sensors 694, including one or more of temperature,humidity, air, oxygen, carbon monoxide, smoke, and other environmentalcondition sensors may be used in a vehicle 104. These environmentalsensors 694 may be used to collect data relating to the safety, comfort,and/or condition of the interior space 108 of the vehicle 104. Amongother things, the data collected by the environmental sensors 694 may beused by the vehicle control system 204 to alter functions of a vehicle.The environment may correspond to an interior space 108 of a vehicle 104and/or specific areas 508 and/or zones 512 of the vehicle 104. It shouldbe appreciate that an environment may correspond to a user 216. Forexample, a low oxygen environment may be detected by the environmentalsensors 694 and associated with a user 216 who is operating the vehicle104 in a particular zone 512. In response to detecting the low oxygenenvironment, at least one of the subsystems of the vehicle 104, asprovided herein, may alter the environment, especially in the particularzone 512, to increase the amount of oxygen in the zone 512. Additionallyor alternatively, the environmental sensors 694 may be used to reportconditions associated with a vehicle (e.g., fire detected, low oxygen,low humidity, high carbon monoxide, etc.). The conditions may bereported to a user 216 and/or a third party via at least onecommunications module as provided herein.

Among other things, the sensors as disclosed herein may communicate witheach other, with devices 212, 248, and/or with the vehicle controlsystem 204 via the signal carrier network 224. Additionally oralternatively, the sensors disclosed herein may serve to provide datarelevant to more than one category of sensor information including, butnot limited to, combinations of environmental information, userinformation, and safety information to name a few.

FIGS. 7A-7B show block diagrams of various sensors that may beassociated with a vehicle 104. Although depicted as interior andexterior sensors, it should be appreciated that any of the one or moreof the sensors shown may be used in both the interior space 108 and theexterior space of the vehicle 104. Moreover, sensors having the samesymbol or name may include the same, or substantially the same,functionality as those sensors described elsewhere in the presentdisclosure. Further, although the various sensors are depicted inconjunction with specific groups (e.g., environmental 708, 708E, userinterface 712, safety 716, 716E, etc.) the sensors should not be limitedto the groups in which they appear. In other words, the sensors may beassociated with other groups or combinations of groups and/ordisassociated from one or more of the groups shown. The sensors asdisclosed herein may communicate with each other, the devices 212, 248,and/or the vehicle control system 204 via one or more communicationschannel(s) 356.

FIG. 7A is a block diagram of an embodiment of interior sensors 340 fora vehicle 104 is provided. The interior sensors 340 may be arranged intoone or more groups, based at least partially on the function of theinterior sensors 340. The interior space 108 of a vehicle 104 mayinclude an environmental group 708, a user interface group 712, and asafety group 716. Additionally or alternatively, there may be sensorsassociated with various devices inside the vehicle (e.g., devices 212,248, smart phones, tablets, mobile computers, etc.)

The environmental group 708 may comprise sensors configured to collectdata relating to the internal environment of a vehicle 104. It isanticipated that the environment of the vehicle 104 may be subdividedinto areas 508 and zones 512 in an interior space 108 of a vehicle 104.In this case, each area 508 and/or zone 512 may include one or more ofthe environmental sensors. Examples of environmental sensors associatedwith the environmental group 708 may include, but are not limited to,oxygen/air sensors 724, temperature sensors 728, humidity sensors 732,light/photo sensors 736, and more. The oxygen/air sensors 724 may beconfigured to detect a quality of the air in the interior space 108 ofthe vehicle 104 (e.g., ratios and/or types of gasses comprising the airinside the vehicle 104, dangerous gas levels, safe gas levels, etc.).Temperature sensors 728 may be configured to detect temperature readingsof one or more objects, users 216, and/or areas 508 of a vehicle 104.Humidity sensors 732 may detect an amount of water vapor present in theair inside the vehicle 104. The light/photo sensors 736 can detect anamount of light present in the vehicle 104. Further, the light/photosensors 736 may be configured to detect various levels of lightintensity associated with light in the vehicle 104.

The user interface group 712 may comprise sensors configured to collectdata relating to one or more users 216 in a vehicle 104. As can beappreciated, the user interface group 712 may include sensors that areconfigured to collect data from users 216 in one or more areas 508 andzones 512 of the vehicle 104. For example, each area 508 and/or zone 512of the vehicle 104 may include one or more of the sensors in the userinterface group 712. Examples of user interface sensors associated withthe user interface group 712 may include, but are not limited to,infrared sensors 740, motion sensors 744, weight sensors 748, wirelessnetwork sensors 752, biometric sensors 756, camera (or image) sensors760, audio sensors 764, and more.

Infrared sensors 740 may be used to measure IR light irradiating from atleast one surface, user 216, or other object in the vehicle 104. Amongother things, the Infrared sensors 740 may be used to measuretemperatures, form images (especially in low light conditions), identifyusers 216, and even detect motion in the vehicle 104.

The motion sensors 744 may be similar to the motion detectors 624A-B, asdescribed in conjunction with FIG. 6B. Weight sensors 748 may beemployed to collect data relating to objects and/or users 216 in variousareas 508 of the vehicle 104. In some cases, the weight sensors 748 maybe included in the seats and/or floor of a vehicle 104.

Optionally, the vehicle 104 may include a wireless network sensor 752.This sensor 752 may be configured to detect one or more wirelessnetwork(s) inside the vehicle 104. Examples of wireless networks mayinclude, but are not limited to, wireless communications utilizingBluetooth®, Wi-Fi™, ZigBee, IEEE 802.11, and other wireless technologystandards. For example, a mobile hotspot may be detected inside thevehicle 104 via the wireless network sensor 752. In this case, thevehicle 104 may determine to utilize and/or share the mobile hotspotdetected via/with one or more other devices 212, 248 and/or componentsassociated with the vehicle 104.

Biometric sensors 756 may be employed to identify and/or recordcharacteristics associated with a user 216. It is anticipated thatbiometric sensors 756 can include at least one of image sensors, IRsensors, fingerprint readers, weight sensors, load cells, forcetransducers, heart rate monitors, blood pressure monitors, and the likeas provided herein.

The camera sensors 760 may be similar to image sensors 622A-B, asdescribed in conjunction with FIG. 6B. Optionally, the camera sensorsmay record still images, video, and/or combinations thereof. The audiosensors 764 may be similar to the interior sound receivers 692A-B, asdescribed in conjunction with FIGS. 6A-6B. The audio sensors may beconfigured to receive audio input from a user 216 of the vehicle 104.The audio input from a user 216 may correspond to voice commands,conversations detected in the vehicle 104, phone calls made in thevehicle 104, and/or other audible expressions made in the vehicle 104.

The safety group 716 may comprise sensors configured to collect datarelating to the safety of a user 216 and/or one or more components of avehicle 104. The vehicle 104 may be subdivided into areas 508 and/orzones 512 in an interior space 108 of a vehicle 104 where each area 508and/or zone 512 may include one or more of the safety sensors providedherein. Examples of safety sensors associated with the safety group 716may include, but are not limited to, force sensors 768, mechanicalmotion sensors 772, orientation sensors 776, restraint sensors 780, andmore.

The force sensors 768 may include one or more sensors inside the vehicle104 configured to detect a force observed in the vehicle 104. Oneexample of a force sensor 768 may include a force transducer thatconverts measured forces (e.g., force, weight, pressure, etc.) intooutput signals.

Mechanical motion sensors 772 may correspond to encoders,accelerometers, damped masses, and the like. Optionally, the mechanicalmotion sensors 772 may be adapted to measure the force of gravity (i.e.,G-force) as observed inside the vehicle 104. Measuring the G-forceobserved inside a vehicle 104 can provide valuable information relatedto a vehicle's acceleration, deceleration, collisions, and/or forcesthat may have been suffered by one or more users 216 in the vehicle 104.As can be appreciated, the mechanical motion sensors 772 can be locatedin an interior space 108 or an exterior of the vehicle 104.

Orientation sensors 776 can include accelerometers, gyroscopes, magneticsensors, and the like that are configured to detect an orientationassociated with the vehicle 104. Similar to the mechanical motionsensors 772, the orientation sensors 776 can be located in an interiorspace 108 or an exterior of the vehicle 104.

The restraint sensors 780 may be similar to the safety restraint sensors679 as described in conjunction with FIGS. 6A-6B. These sensors 780 maycorrespond to sensors associated with one or more restraint devicesand/or systems in a vehicle 104. Seatbelts and airbags are examples ofrestraint devices and/or systems. As can be appreciated, the restraintdevices and/or systems may be associated with one or more sensors thatare configured to detect a state of the device/system. The state mayinclude extension, engagement, retraction, disengagement, deployment,and/or other electrical or mechanical conditions associated with thedevice/system.

The associated device sensors 720 can include any sensors that areassociated with a device 212, 248 in the vehicle 104. As previouslystated, typical devices 212, 248 may include smart phones, tablets,laptops, mobile computers, and the like. It is anticipated that thevarious sensors associated with these devices 212, 248 can be employedby the vehicle control system 204. For example, a typical smart phonecan include, an image sensor, an IR sensor, audio sensor, gyroscope,accelerometer, wireless network sensor, fingerprint reader, and more. Itis an aspect of the present disclosure that one or more of theseassociated device sensors 720 may be used by one or more subsystems ofthe vehicle system 200.

In FIG. 7B, a block diagram of an embodiment of exterior sensors 340 fora vehicle 104 is shown. The exterior sensors may include sensors thatare identical, or substantially similar, to those previously disclosedin conjunction with the interior sensors of FIG. 7A. Optionally, theexterior sensors 340 may be configured to collect data relating to oneor more conditions, objects, users 216, and other events that areexternal to the interior space 108 of the vehicle 104. For instance, theoxygen/air sensors 724 may measure a quality and/or composition of theair outside of a vehicle 104. As another example, the motion sensors 744may detect motion outside of a vehicle 104.

The external environmental group 708E may comprise sensors configured tocollect data relating to the external environment of a vehicle 104. Inaddition to including one or more of the sensors previously described,the external environmental group 708E may include additional sensors,such as, vehicle sensors 750, biological sensors, and wireless signalsensors 758. Vehicle sensors 750 can detect vehicles that are in anenvironment surrounding the vehicle 104. For example, the vehiclesensors 750 may detect vehicles in a first outside area 516, a secondoutside area 520, and/or combinations of the first and second outsideareas 516, 520. Optionally, the vehicle sensors 750 may include one ormore of RF sensors, IR sensors, image sensors, and the like to detectvehicles, people, hazards, etc. that are in an environment exterior tothe vehicle 104. Additionally or alternatively, the vehicle sensors 750can provide distance/directional information relating to a distance(e.g., distance from the vehicle 104 to the detected object) and/or adirection (e.g., direction of travel, etc.) associated with the detectedobject.

The biological sensors 754 may determine whether one or more biologicalentities (e.g., an animal, a person, a user 216, etc.) is in an externalenvironment of the vehicle 104. Additionally or alternatively, thebiological sensors 754 may provide distance information relating to adistance of the biological entity from the vehicle 104. Biologicalsensors 754 may include at least one of RF sensors, IR sensors, imagesensors and the like that are configured to detect biological entities.For example, an IR sensor may be used to determine that an object, orbiological entity, has a specific temperature, temperature pattern, orheat signature. Continuing this example, a comparison of the determinedheat signature may be compared to known heat signatures associated withrecognized biological entities (e.g., based on shape, locations oftemperature, and combinations thereof, etc.) to determine whether theheat signature is associated with a biological entity or an inanimate,or non-biological, object.

The wireless signal sensors 758 may include one or more sensorsconfigured to receive wireless signals from signal sources such asWi-Fi™ hotspots, cell towers, roadside beacons, other electronicroadside devices, and satellite positioning systems. Optionally, thewireless signal sensors 758 may detect wireless signals from one or moreof a mobile phone, mobile computer, keyless entry device, RFID device,near field communications (NFC) device, and the like.

The external safety group 716E may comprise sensors configured tocollect data relating to the safety of a user 216 and/or one or morecomponents of a vehicle 104. Examples of safety sensors associated withthe external safety group 716E may include, but are not limited to,force sensors 768, mechanical motion sensors 772, orientation sensors776, vehicle body sensors 782, and more. Optionally, the exterior safetysensors 716E may be configured to collect data relating to one or moreconditions, objects, vehicle components, and other events that areexternal to the vehicle 104. For instance, the force sensors 768 in theexternal safety group 716E may detect and/or record force informationassociated with the outside of a vehicle 104. For instance, if an objectstrikes the exterior of the vehicle 104, the force sensors 768 from theexterior safety group 716E may determine a magnitude, location, and/ortime associated with the strike.

The vehicle 104 may include a number of vehicle body sensors 782. Thevehicle body sensors 782 may be configured to measure characteristicsassociated with the body (e.g., body panels, components, chassis,windows, etc.) of a vehicle 104. For example, two vehicle body sensors782, including a first body sensor and a second body sensor, may belocated at some distance apart. Continuing this example, the first bodysensor may be configured to send an electrical signal across the body ofthe vehicle 104 to the second body sensor, or vice versa. Upon receivingthe electrical signal from the first body sensor, the second body sensormay record a detected current, voltage, resistance, and/or combinationsthereof associated with the received electrical signal. Values (e.g.,current, voltage, resistance, etc.) for the sent and received electricalsignal may be stored in a memory. These values can be compared todetermine whether subsequent electrical signals sent and receivedbetween vehicle body sensors 782 deviate from the stored values. Whenthe subsequent signal values deviate from the stored values, thedifference may serve to indicate damage and/or loss of a body component.Additionally or alternatively, the deviation may indicate a problem withthe vehicle body sensors 782. The vehicle body sensors 782 maycommunicate with each other, a vehicle control system 204, and/orsystems of the vehicle system 200 via a communications channel 356.Although described using electrical signals, it should be appreciatedthat alternative embodiments of the vehicle body sensors 782 may usesound waves and/or light to perform a similar function.

FIG. 8A is a block diagram of an embodiment of a media controllersubsystem 348 for a vehicle 104. The media controller subsystem 348 mayinclude, but is not limited to, a media controller 804, a mediaprocessor 808, a match engine 812, an audio processor 816, a speechsynthesis module 820, a network transceiver 824, a signal processingmodule 828, memory 832, and a language database 836. Optionally, themedia controller subsystem 348 may be configured as a dedicated bladethat implements the media-related functionality of the system 200.Additionally or alternatively, the media controller subsystem 348 canprovide voice input, voice output, library functions for multimedia, anddisplay control for various areas 508 and/or zones 512 of the vehicle104.

Optionally, the media controller subsystem 348 may include a local IPaddress (e.g., IPv4, IPv6, combinations thereof, etc.) and even aroutable, global unicast address. The routable, global unicast addressmay allow for direct addressing of the media controller subsystem 348for streaming data from Internet resources (e.g., cloud storage, useraccounts, etc.). It is anticipated, that the media controller subsystem348 can provide multimedia via at least one Internet connection, orwireless network communications module, associated with the vehicle 104.Moreover, the media controller subsystem 348 may be configured toservice multiple independent clients simultaneously.

The media processor 808 may comprise a general purpose programmableprocessor or controller for executing application programming orinstructions related to the media subsystem 348. The media processor 808may include multiple processor cores, and/or implement multiple virtualprocessors. Optionally, the media processor 808 may include multiplephysical processors. By way of example, the media processor 808 maycomprise a specially configured application specific integrated circuit(ASIC) or other integrated circuit, a digital signal processor, acontroller, a hardwired electronic or logic circuit, a programmablelogic device or gate array, a special purpose computer, or the like. Themedia processor 808 generally functions to run programming code orinstructions implementing various functions of the media controller 804.

The match engine 812 can receive input from one or more components ofthe vehicle system 800 and perform matching functions. Optionally, thematch engine 812 may receive audio input provided via a microphone 886of the system 800. The audio input may be provided to the mediacontroller subsystem 348 where the audio input can be decoded andmatched, via the match engine 812, to one or more functions available tothe vehicle 104. Similar matching operations may be performed by thematch engine 812 relating to video input received via one or more imagesensors, cameras 878, and the like.

The media controller subsystem 348 may include a speech synthesis module820 configured to provide audio output to one or more speakers 880, oraudio output devices, associated with the vehicle 104. Optionally, thespeech synthesis module 820 may be configured to provide audio outputbased at least partially on the matching functions performed by thematch engine 812.

As can be appreciated, the coding/decoding, the analysis of audioinput/output, and/or other operations associated with the match engine812 and speech synthesis module 820, may be performed by the mediaprocessor 808 and/or a dedicated audio processor 816. The audioprocessor 816 may comprise a general purpose programmable processor orcontroller for executing application programming or instructions relatedto audio processing. Further, the audio processor 816 may be similar tothe media processor 808 described herein.

The network transceiver 824 can include any device configured totransmit and receive analog and/or digital signals. Optionally, themedia controller subsystem 348 may utilize a network transceiver 824 inone or more communication networks associated with the vehicle 104 toreceive and transmit signals via the communications channel 356.Additionally or alternatively, the network transceiver 824 may acceptrequests from one or more devices 212, 248 to access the mediacontroller subsystem 348. One example of the communication network is alocal-area network (LAN). As can be appreciated, the functionalityassociated with the network transceiver 824 may be built into at leastone other component of the vehicle 104 (e.g., a network interface card,communications module, etc.).

The signal processing module 828 may be configured to alteraudio/multimedia signals received from one or more input sources (e.g.,microphones 886, etc.) via the communications channel 356. Among otherthings, the signal processing module 828 may alter the signals receivedelectrically, mathematically, combinations thereof, and the like.

The media controller 804 may also include memory 832 for use inconnection with the execution of application programming or instructionsby the media processor 808, and for the temporary or long term storageof program instructions and/or data. As examples, the memory 832 maycomprise RAM, DRAM, SDRAM, or other solid state memory.

The language database 836 may include the data and/or libraries for oneor more languages, as are used to provide the language functionality asprovided herein. In one case, the language database 836 may be loaded onthe media controller 804 at the point of manufacture. Optionally, thelanguage database 836 can be modified, updated, and/or otherwise changedto alter the data stored therein. For instance, additional languages maybe supported by adding the language data to the language database 836.In some cases, this addition of languages can be performed via accessingadministrative functions on the media controller 804 and loading the newlanguage modules via wired (e.g., USB, etc.) or wireless communication.In some cases, the administrative functions may be available via avehicle console device 248, a user device 212, 248, and/or other mobilecomputing device that is authorized to access administrative functions(e.g., based at least partially on the device's address, identification,etc.).

One or more video controllers 840 may be provided for controlling thevideo operation of the devices 212, 248, 882 associated with thevehicle. Optionally, the video controller 840 may include a displaycontroller for controlling the operation of touch sensitive screens,including input (touch sensing) and output (display) functions. Videodata may include data received in a stream and unpacked by a processorand loaded into a display buffer. In this example, the processor andvideo controller 840 can optimize the display based on thecharacteristics of a screen of a display device 212, 248, 882. Thefunctions of a touch screen controller may be incorporated into othercomponents, such as a media processor 808 or display subsystem.

The audio controller 844 can provide control of the audio entertainmentsystem (e.g., radio, subscription music service, multimediaentertainment, etc.), and other audio associated with the vehicle 104(e.g., navigation systems, vehicle comfort systems, convenience systems,etc.). Optionally, the audio controller 844 may be configured totranslate digital signals to analog signals and vice versa. As can beappreciated, the audio controller 844 may include device drivers thatallow the audio controller 844 to communicate with other components ofthe system 800 (e.g., processors 816, 808, audio I/O 874, and the like).

The system 800 may include a profile identification module 848 todetermine whether a user profile is associated with the vehicle 104.Among other things, the profile identification module 848 may receiverequests from a user 216, or device 212, 228, 248, to access a profilestored in a profile database 856 or profile data 252. Additionally oralternatively, the profile identification module 848 may request profileinformation from a user 216 and/or a device 212, 228, 248, to access aprofile stored in a profile database 856 or profile data 252. In anyevent, the profile identification module 848 may be configured tocreate, modify, retrieve, and/or store user profiles in the profiledatabase 856 and/or profile data 252. The profile identification module848 may include rules for profile identification, profile informationretrieval, creation, modification, and/or control of components in thesystem 800.

By way of example, a user 216 may enter the vehicle 104 with a smartphone or other device 212. In response to determining that a user 216 isinside the vehicle 104, the profile identification module 848 maydetermine that a user profile is associated with the user's smart phone212. As another example, the system 800 may receive information about auser 216 (e.g., from a camera 878, microphone 886, etc.), and, inresponse to receiving the user information, the profile identificationmodule 848 may refer to the profile database 856 to determine whetherthe user information matches a user profile stored in the database 856.It is anticipated that the profile identification module 848 maycommunicate with the other components of the system to load one or morepreferences, settings, and/or conditions based on the user profile.Further, the profile identification module 848 may be configured tocontrol components of the system 800 based on user profile information.

Optionally, data storage 852 may be provided. Like the memory 832, thedata storage 852 may comprise a solid state memory device or devices.Alternatively or in addition, the data storage 852 may comprise a harddisk drive or other random access memory. Similar to the data storage852, the profile database 856 may comprise a solid state memory deviceor devices.

An input/output module 860 and associated ports may be included tosupport communications over wired networks or links, for example withother communication devices, server devices, and/or peripheral devices.Examples of an input/output module 860 include an Ethernet port, aUniversal Serial Bus (USB) port, CAN Bus, Institute of Electrical andElectronics Engineers (IEEE) 1594, or other interface. Users may bringtheir own devices (e.g., Bring Your Own Device (BYOD), device 212, etc.)into the vehicle 104 for use with the various systems disclosed.Although most BYOD devices can connect to the vehicle systems (e.g., themedia controller subsystem 348, etc.) via wireless communicationsprotocols (e.g., Wi-Fi™, Bluetooth®, etc.) many devices may require adirect connection via USB, or similar. In any event, the input/outputmodule 860 can provide the necessary connection of one or more devicesto the vehicle systems described herein.

A video input/output interface 864 can be included to receive andtransmit video signals between the various components in the system 800.Optionally, the video input/output interface 864 can operate withcompressed and uncompressed video signals. The video input/outputinterface 864 can support high data rates associated with image capturedevices. Additionally or alternatively, the video input/output interface864 may convert analog video signals to digital signals.

The infotainment system 870 may include information media content and/orentertainment content, informational devices, entertainment devices, andthe associated programming therefor. Optionally, the infotainment system870 may be configured to handle the control of one or more components ofthe system 800 including, but in no way limited to, radio, streamingaudio/video devices, audio devices 880, 882, 886, video devices 878,882, travel devices (e.g., GPS, navigational systems, etc.), wirelesscommunication devices, network devices, and the like. Further, theinfotainment system 870 can provide the functionality associated withother infotainment features as provided herein.

An audio input/output interface 874 can be included to provide analogaudio to an interconnected speaker 880 or other device, and to receiveanalog audio input from a connected microphone 886 or other device. Asan example, the audio input/output interface 874 may comprise anassociated amplifier and analog to digital converter. Alternatively orin addition, the devices 212, 248 can include integrated audioinput/output devices 880, 886 and/or an audio jack for interconnectingan external speaker 880 or microphone 886. For example, an integratedspeaker 880 and an integrated microphone 886 can be provided, to supportnear talk, voice commands, spoken information exchange, and/or speakerphone operations.

Among other things, the system 800 may include devices that are part ofthe vehicle 104 and/or part of a device 212, 248 that is associated withthe vehicle 104. For instance, these devices may be configured tocapture images, display images, capture sound, and present sound.Optionally, the system 800 may include at least one of imagesensors/cameras 878, display devices 882, audio inputdevices/microphones 886, and audio output devices/speakers 880. Thecameras 878 can be included for capturing still and/or video images.Alternatively or in addition, image sensors 878 can include a scanner orcode reader. An image sensor/camera 878 can include or be associatedwith additional elements, such as a flash or other light source. In somecases, the display device 882 may include an audio input device and/oran audio output device in addition to providing video functions. Forinstance, the display device 882 may be a console, monitor, a tabletcomputing device, and/or some other mobile computing device.

FIG. 8B is a block diagram of an embodiment of a user/device interactionsubsystem 817 in a vehicle system 800. The user/device interactionsubsystem 817 may comprise hardware and/or software that conduct variousoperations for or with the vehicle 104. For instance, the user/deviceinteraction subsystem 817 may include at least one user interactionsubsystem 332 and device interaction subsystem 352 as previouslydescribed. These operations may include, but are not limited to,providing information to the user 216, receiving input from the user216, and controlling the functions or operation of the vehicle 104, etc.Among other things, the user/device interaction subsystem 817 mayinclude a computing system operable to conduct the operations asdescribed herein.

Optionally, the user/device interaction subsystem 817 can include one ormore of the components and modules provided herein. For instance, theuser/device interaction subsystem 817 can include one or more of a videoinput/output interface 864, an audio input/output interface 874, asensor module 814, a device interaction module 818, a useridentification module 822, a vehicle control module 826, anenvironmental control module 830, and a gesture control module 834. Theuser/device interaction subsystem 817 may be in communication with otherdevices, modules, and components of the system 800 via thecommunications channel 356.

The user/device interaction subsystem 817 may be configured to receiveinput from a user 216 and/or device via one or more components of thesystem. By way of example, a user 216 may provide input to theuser/device interaction subsystem 817 via wearable devices 802, 806,810, video input (e.g., via at least one image sensor/camera 878, etc.)audio input (e.g., via the microphone, audio input source, etc.),gestures (e.g., via at least one image sensor 878, motion sensor 888,etc.), device input (e.g., via a device 212, 248 associated with theuser, etc.), combinations thereof, and the like.

The wearable devices 802, 806, 810 can include heart rate monitors,blood pressure monitors, glucose monitors, pedometers, movement sensors,wearable computers, and the like. Examples of wearable computers may beworn by a user 216 and configured to measure user activity, determineenergy spent based on the measured activity, track user sleep habits,determine user oxygen levels, monitor heart rate, provide alarmfunctions, and more. It is anticipated that the wearable devices 802,806, 810 can communicate with the user/device interaction subsystem 817via wireless communications channels or direct connection (e.g., wherethe device docks, or connects, with a USB port or similar interface ofthe vehicle 104).

A sensor module 814 may be configured to receive and/or interpret inputprovided by one or more sensors in the vehicle 104. In some cases, thesensors may be associated with one or more user devices (e.g., wearabledevices 802, 806, 810, smart phones 212, mobile computing devices 212,248, and the like). Optionally, the sensors may be associated with thevehicle 104, as described in conjunction with FIGS. 6A-7B.

The device interaction module 818 may communicate with the variousdevices as provided herein. Optionally, the device interaction module818 can provide content, information, data, and/or media associated withthe various subsystems of the vehicle system 800 to one or more devices212, 248, 802, 806, 810, 882, etc. Additionally or alternatively, thedevice interaction module 818 may receive content, information, data,and/or media associated with the various devices provided herein.

The user identification module 822 may be configured to identify a user216 associated with the vehicle 104. The identification may be based onuser profile information that is stored in profile data 252. Forinstance, the user identification module 822 may receive characteristicinformation about a user 216 via a device, a camera, and/or some otherinput. The received characteristics may be compared to data stored inthe profile data 252. Where the characteristics match, the user 216 isidentified. As can be appreciated, where the characteristics do notmatch a user profile, the user identification module 822 may communicatewith other subsystems in the vehicle 104 to obtain and/or record profileinformation about the user 216. This information may be stored in amemory and/or the profile data storage 252.

The vehicle control module 826 may be configured to control settings,features, and/or the functionality of a vehicle 104. In some cases, thevehicle control module 826 can communicate with the vehicle controlsystem 204 to control critical functions (e.g., driving system controls,braking, accelerating, etc.) and/or noncritical functions (e.g., drivingsignals, indicator/hazard lights, mirror controls, window actuation,etc.) based at least partially on user/device input received by theuser/device interaction subsystem 817.

The environmental control module 830 may be configured to controlsettings, features, and/or other conditions associated with theenvironment, especially the interior environment, of a vehicle 104.Optionally, the environmental control module 830 may communicate withthe climate control system (e.g. changing cabin temperatures, fanspeeds, air direction, etc.), oxygen and/or air quality control system(e.g., increase/decrease oxygen in the environment, etc.), interiorlighting (e.g., changing intensity of lighting, color of lighting,etc.), an occupant seating system 648 (e.g., adjusting seat position,firmness, height, etc.), steering wheel 640 (e.g., position adjustment,etc.), infotainment/entertainment system (e.g., adjust volume levels,display intensity adjustment, change content, etc.), and/or othersystems associated with the vehicle environment. Additionally oralternatively, these systems can provide input, set-points, and/orresponses, to the environmental control module 830. As can beappreciated, the environmental control module 830 may control theenvironment based at least partially on user/device input received bythe user/device interaction subsystem 817.

The gesture control module 834 is configured to interpret gesturesprovided by a user 216 in the vehicle 104. Optionally, the gesturecontrol module 834 may provide control signals to one or more of thevehicle systems 300 disclosed herein. For example, a user 216 mayprovide gestures to control the environment, critical and/or noncriticalvehicle functions, the infotainment system, communications, networking,and more. Optionally, gestures may be provided by a user 216 anddetected via one or more of the sensors as described in conjunction withFIGS. 6B-7A. As another example, one or more motion sensors 888 mayreceive gesture input from a user 216 and provide the gesture input tothe gesture control module 834. Continuing this example, the gestureinput is interpreted by the gesture control module 834. Thisinterpretation may include comparing the gesture input to gesturesstored in a memory. The gestures stored in memory may include one ormore functions and/or controls mapped to specific gestures. When a matchis determined between the detected gesture input and the stored gestureinformation, the gesture control module 834 can provide a control signalto any of the systems/subsystems as disclosed herein.

FIG. 8C illustrates a GPS/Navigation subsystem(s) 336. The Navigationsubsystem(s) 336 can be any present or future-built navigation systemthat may use location data, for example, from the Global PositioningSystem (GPS), to provide navigation information or control the vehicle104. The Navigation subsystem(s) 336 can include several components ormodules, such as, one or more of, but not limited to, a GPSAntenna/receiver 892, a location module 896, a maps database 8100, anautomobile controller 8104, a vehicle systems transceiver 8108, atraffic controller 8112, a network traffic transceiver 8116, avehicle-to-vehicle transceiver 8120, a traffic information database8124, etc. Generally, the several components or modules 892-8124 may behardware, software, firmware, computer readable media, or combinationsthereof

A GPS Antenna/receiver 892 can be any antenna, GPS puck, and/or receivercapable of receiving signals from a GPS satellite or other navigationsystem, as mentioned hereinbefore. The signals may be demodulated,converted, interpreted, etc. by the GPS Antenna/receiver 892 andprovided to the location module 896. Thus, the GPS Antenna/receiver 892may convert the time signals from the GPS system and provide a location(e.g., coordinates on a map) to the location module 896. Alternatively,the location module 896 can interpret the time signals into coordinatesor other location information.

The location module 896 can be the controller of the satellitenavigation system designed for use in automobiles. The location module896 can acquire position data, as from the GPS Antenna/receiver 892, tolocate the user or vehicle 104 on a road in the unit's map database8100. Using the road database 8100, the location module 896 can givedirections to other locations along roads also in the database 8100.When a GPS signal is not available, the location module 896 may applydead reckoning to estimate distance data from sensors 242 including oneor more of, but not limited to, a speed sensor attached to the drivetrain of the vehicle 104, a gyroscope, an accelerometer, etc. GPS signalloss and/or multipath can occur due to urban canyons, tunnels, and otherobstructions. Additionally or alternatively, the location module 896 mayuse known locations of Wi-Fi hotspots, cell tower data, etc. todetermine the position of the vehicle 104, such as by using timedifference of arrival (TDOA) and/or frequency difference of arrival(FDOA) techniques.

The maps database 8100 can include any hardware and/or software to storeinformation about maps, geographical information system information,location information, etc. The maps database 8100 can include any datadefinition or other structure to store the information. Generally, themaps database 8100 can include a road database that may include one ormore vector maps of areas of interest. Street names, street numbers,house numbers, and other information can be encoded as geographiccoordinates so that the user can find some desired destination by streetaddress. Points of interest (waypoints) can also be stored with theirgeographic coordinates. For example, a point of interest may includespeed cameras, fuel stations, public parking, and “parked here” (or “youparked here”) information. The map database contents can be produced orupdated by a server connected through a wireless system in communicationwith the Internet, even as the vehicle 104 is driven along existingstreets, yielding an up-to-date map.

An automobile controller 8104 can be any hardware and/or software thatcan receive instructions from the location module 896 or the trafficcontroller 8112 and operate the vehicle 104. The automobile controller8104 receives this information and data from the sensors 242 to operatethe vehicle 104 without driver input. Thus, the automobile controller8104 can drive the vehicle 104 along a route provided by the locationmodule 896. The route may be adjusted by information sent from thetraffic controller 8112. Discrete and real-time driving can occur withdata from the sensors 242. To operate the vehicle 104, the automobilecontroller 8104 can communicate with a vehicle systems transceiver 8108.

The vehicle systems transceiver 8108 can be any present orfuture-developed device that can comprise a transmitter and/or areceiver, which may be combined and can share common circuitry or asingle housing. The vehicle systems transceiver 8108 may communicate orinstruct one or more of the vehicle control subsystems 328. For example,the vehicle systems transceiver 8108 may send steering commands, asreceived from the automobile controller 8104, to an electronic steeringsystem, to adjust the steering of the vehicle 100 in real time. Theautomobile controller 8104 can determine the effect of the commandsbased on received sensor data 242 and can adjust the commands as needbe. The vehicle systems transceiver 8108 can also communicate with thebraking system, the engine and drive train to speed or slow the car, thesignals (e.g., turn signals and brake lights), the headlights, thewindshield wipers, etc. Any of these communications may occur over thecomponents or function as described in conjunction with FIG. 4.

A traffic controller 8112 can be any hardware and/or software that cancommunicate with an automated traffic system and adjust the function ofthe vehicle 104 based on instructions from the automated traffic system.An automated traffic system is a system that manages the traffic in agiven area. This automated traffic system can instruct cars to drive incertain lanes, instruct cars to raise or lower their speed, instruct acar to change their route of travel, instruct cars to communicate withother cars, etc. To perform these functions, the traffic controller 8112may register the vehicle 104 with the automated traffic system and thenprovide other information including the route of travel. The automatedtraffic system can return registration information and any requiredinstructions. The communications between the automated traffic systemand the traffic controller 8112 may be received and sent through anetwork traffic transceiver 8116.

The network traffic transceiver 8116 can be any present orfuture-developed device that can comprise a transmitter and/or areceiver, which may be combined and can share common circuitry or asingle housing. The network traffic transceiver 8116 may communicatewith the automated traffic system using any known or future-developed,protocol, standard, frequency, bandwidth range, etc. The network traffictransceiver 8116 enables the sending of information between the trafficcontroller 8112 and the automated traffic system.

The traffic controller 8112 can also communicate with another vehicle,which may be in physical proximity (i.e., within range of a wirelesssignal), using the vehicle-to-vehicle transceiver 8120. As with thenetwork traffic transceiver 8116, the vehicle-to-vehicle transceiver8120 can be any present or future-developed device that can comprise atransmitter and/or a receiver, which may be combined and can sharecommon circuitry or a single housing. Generally, the vehicle-to-vehicletransceiver 8120 enables communication between the vehicle 104 and anyother vehicle. These communications allow the vehicle 104 to receivetraffic or safety information, control or be controlled by anothervehicle, establish an alternative communication path to communicate withthe automated traffic system, establish a node including two or morevehicle that can function as a unit, etc. The vehicle-to-vehicletransceiver 8120 may communicate with the other vehicles using any knownor future-developed, protocol standard, frequency, bandwidth range, etc.

The traffic controller 8112 can control functions of the automobilecontroller 8104 and communicate with the location module 896. Thelocation module 896 can provide current location information and routeinformation that the traffic controller 8112 may then provide to theautomated traffic system. The traffic controller 8112 may receive routeadjustments from the automated traffic system that are then sent to thelocation module 896 to change the route. Further, the traffic controller8112 can also send driving instructions to the automobile controller8104 to change the driving characteristics of the vehicle 104. Forexample, the traffic controller 8112 can instruct the automobilecontroller 8104 to accelerate or decelerate to a different speed, changelanes, or perform another driving maneuver. The traffic controller 8112can also manage vehicle-to-vehicle communications and store informationabout the communications or other information in the traffic informationdatabase 8124.

The traffic information database 8124 can be any type of database, suchas relational, hierarchical, object-oriented, and/or the like. Thetraffic information database 8124 may reside on a storage medium localto (and/or resident in) the vehicle control system 204 or in the vehicle104. The traffic information database 8124 may be adapted to store,update, and retrieve information about communications with othervehicles or any active instructions from the automated traffic system.This information may be used by the traffic controller 8112 to instructor adjust the performance of driving maneuvers.

FIG. 9 illustrates an optional communications architecture where, thehost device 908 may include one more routing profiles, permissionmodules, and rules that control how communications within the vehicle104 are to occur. This communications architecture can be used inconjunction with the routing tables, rules and permissions associatedwith access point 456 and optional firewall 484, or can be in lieuthereof. For example, the host device 908 acts as a mobile hot spot toone or more other devices within vehicle 104, such as, other device 1912, other device 2 916, other device 3 920, and other device N 924.Optionally, one or more of the other devices 912 can communicatedirectly with the host device 908 which then provides Internet access tothose devices 912 via the device 908. The host device 908 can act as amobile hot spot for any one or more of the other devices 912, which maynot need to communicate over the network/communications buses 224/404,but could instead connect directly to the host device 908 via, forexample, NFC, Bluetooth®, WiFi, or the like. When the device 908 isacting as the host device, the device 908 can include one or morerouting profiles, permissions, rules modules, and can also act as afirewall for the various inter and intra vehicle communications.

As will be appreciated, there could be alternative host devices, suchas, host 904 which could also act as, for example, a co-host inassociation with device 908. Optionally, one or more of the routingprofile, permission information, and rules could be shared between theco-host devices 904, 908, both of those devices being usable forInternet access for one or more of the other devices, 912-924. As willbe appreciated, the other devices 912-924 need not necessarily connectto one or more of host device 908 and the other device 904 via a directcommunications link, but could also interface with those devices 904,908 utilizing the network/communications buses 224/404 associated withthe vehicle 100. As previously discussed, one or more of the otherdevices can connect to the network/communications buses 224/404utilizing the various networks and/or buses discussed herein which wouldtherefore enable, for example, regulation of the various communicationsbased on the Ethernet zone that the other device 912 is associated with.

An embodiment of one or more modules that may be associated with thevehicle control system 204 may be as shown in FIG. 10. The modules caninclude a communication subsystem interface 1008 in communication withan operating system 1004. The communications may pass through a firewall1044. The firewall 1044 can be any software that can control theincoming and outgoing communications by analyzing the data packets anddetermining whether the packets should be allowed through the firewall,based on applied rule set. A firewall 1044 can establish a “barrier”between a trusted, secure internal network and another network (e.g.,the Internet) that is not assumed to be secure and trusted.

In some situations, the firewall 1044 may establish security zones thatare implemented by running system services and/or applications inrestricted user groups and accounts. A set of configuration files andcallbacks may then be linked to an IP table firewall. The IP tablefirewall can be configured to notify a custom filter application at anyof the layers of the Ethernet packet. The different users/group rightsto access the system may include: system users, which may have exclusiveright over all device firewall rules and running software; a big-brotheruser, which may have access to on board device (OBD) control data andmay be able to communicate with the vehicle subsystem 328 and may beable to alter the parameters in the vehicle control system 204; a dealeruser, which can have rights to read OBD data for diagnostics andrepairs; a dashboard user, which can have rights to launch dashboardapplications and/or authenticate guest users and change theirpermissions to trusted/friend/family, and can read but cannot write intoOBD diagnostic data; a world wide web (WWW) data user, which can haveHTTP rights to respond to HTTP requests (the HTTP requests also cantarget different user data, but may be filtered by default useraccounts); a guest user, which may have no rights; a family/friend user,which may have rights to play media from the media subsystem 348 and/orto stream media to the media subsystem 348.

The operating system 1004 can be a collection of software that managescomputer hardware resources and provides common services forapplications and other programs. The operating system 1004 may scheduletime-sharing for efficient use of the system. For hardware functions,such as input, output, and memory allocation, the operating system 1004can act as an intermediary between applications or programs and thecomputer hardware. Examples of operating systems that may be deployed asoperating system 1004 include Android, BSD, iOS, Linux, OS X, QNX,Microsoft Windows, Windows Phone, IBM z/OS, etc.

The operating system 1004 can include one or more sub-modules. Forexample, a desktop manager 1012 can manage one or more graphical userinterfaces (GUI) in a desktop environment. Desktop GUIs can help theuser to easily access and edit files. A command-line interface (CLI) maybe used if full control over the operating system (OS) 1004 is required.The desktop manager 1012 is described further hereinafter.

A kernel 1028 can be a computer program that manages input/outputrequests from software and translates them into data processinginstructions for the processor 304 and other components of the vehiclecontrol system 204. The kernel 1028 is the fundamental component of theoperating system 1004 that can execute many of the functions associatedwith the OS 1004.

The kernel 1028 can include other software functions, including, but notlimited to, driver(s) 1056, communication software 1052, and/or InternetProtocol software 1048. A driver 1056 can be any computer program thatoperates or controls a particular type of device that is attached to avehicle control system 204. A driver 1056 can communicate with thedevice through the bus 356 or communications subsystem 1008 to which thehardware connects. When a calling program invokes a routine in thedriver 1056, the driver 1056 may issue one or more commands to thedevice. Once the device sends data back to the driver 1056, the driver1056 may invoke routines in the original calling program. Drivers can behardware-dependent and operating-system-specific. Driver(s) 1056 canprovide the interrupt handling required for any necessary asynchronoustime-dependent hardware interface.

The IP module 1048 can conduct any IP addressing, which may include theassignment of IP addresses and associated parameters to host interfaces.The address space may include networks and sub-networks. The IP module1048 can perform the designation of network or routing prefixes and mayconduct IP routing, which transports packets across network boundaries.Thus, the IP module 1048 may perform all functions required for IPmulticast operations.

The communications module 1052 may conduct all functions forcommunicating over other systems or using other protocols not servicedby the IP module 1048. Thus, the communications module 1052 can managemulticast operations over other busses or networks not serviced by theIP module 1048. Further, the communications module 1052 may perform ormanage communications to one or more devices, systems, data stores,services, etc. that are in communication with the vehicle control system204 or other subsystems through the firewall 1044. Thus, thecommunications module 1052 can conduct communications through thecommunication subsystem interface 1008.

A file system 1016 may be any data handling software that can controlhow data is stored and retrieved. The file system 1016 can separate thestored data into individual pieces, and giving each piece a name, caneasily separate and identify the pieces of data. Each piece of data maybe considered a “file”. The file system 1016 can construct datastructure and logic rules used to manage the information and theidentifiers for the information. The structure and logic rules can beconsidered a “file system.”

A device discovery daemon 1020 may be a computer program that runs as abackground process that can discover new devices that connect with thenetwork 356 or communication subsystem 1008 or devices that disconnectfrom the network 356 or communication subsystem 1008. The devicediscovery daemon 1020 can ping the network 356 (the local subnet) whenthe vehicle 104 starts, when a vehicle door opens or closes, or upon theoccurrence of other events. Additionally or alternatively, the devicediscovery daemon 1020 may force Bluetooth®, USB, and/or wirelessdetection. For each device that responds to the ping, the devicediscovery daemon 1020 can populate the system data 208 with deviceinformation and capabilities, using any of one or more protocols,including one or more of, but not limited to, IPv6 Hop-by-Hop Option(HOPOPT), Internet Control Message Protocol (ICMP), Internet GroupManagement Protocol (IGMP), Gateway-to-Gateway Protocol (GGP), InternetProtocol (IP), Internet Stream Protocol (ST), Transmission ControlProtocol (TCP), Exterior Gateway Protocol (EGP), CHAOS, User DatagramProtocol (UDP), etc.

For example, the device discovery daemon 1020 can determine devicecapabilities based on the opened ports the device exposes. If a cameraexposes port 80, then the device discovery daemon 1020 can determinethat the camera is using a Hypertext Transfer Protocol (HTTP).Alternatively, if a device is supporting Universal Plug and Play (UPnP),the system data 208 can include more information, for example, a cameracontrol universal resource locator (URL), a camera zoom URL, etc. When ascan stops, the device discovery daemon 1020 can trigger a dashboardrefresh to ensure the user interface reflects the new devices on thedesktop.

A desktop manager 1012 may be a computer program that manages the userinterface of the vehicle control system 204. The desktop environment maybe designed to be customizable and allow the definition of the desktopconfiguration look-and-feel for a wide range of appliances or devicesfrom computer desktops, mobile devices, computer tablets, etc.Launcher(s), panels, desktop areas, the desktop background,notifications, panes, etc., can be configured from a dashboardconfiguration file managed by the desktop manager 1012. The graphicalelements in which the desktop manager 1012 controls can includelaunchers, the desktop, notification bars, etc.

The desktop may be an area of the display where the applications arerunning. The desktop can have a custom background. Further, the desktopmay be divided into two or more areas. For example, the desktop may bedivided into an upper half of a display and a lower half of the display.Each application can be configured to run in a portion of the desktop.Extended settings can be added to the desktop configuration file, suchthat, some objects may be displayed over the whole desktop or in customsize out of the context of the divided areas.

The notification bar may be a part of a bar display system, which mayprovide notifications by displaying, for example, icons and/or pop-upwindows that may be associated with sound notifications. Thenotification mechanism can be designed for separate plug-ins, which runin separate processes and may subscribe to a system Intelligent InputBus (IBUS)/D-BUS event service. The icons on the notifications bar canbe accompanied with application short-cuts to associated applications,for example, a Bluetooth® manager, a USB manager, radio volume and ortone control, a security firewall, etc.

The desktop manager 1012 may include a windows manager 1032, anapplication launcher 1036, and/or a panel launcher 1040. Each of thesecomponents can control a different aspect of the user interface. Thedesktop manager 1012 can use a root window to create panels that caninclude functionality for one or more of, but not limited to: launchingapplications, managing applications, providing notifications, etc.

The windows manager 1032 may be software that controls the placement andappearance of windows within a graphical user interface presented to theuser. Generally, the windows manager 1032 can provide the desktopenvironment used by the vehicle control system 204. The windows manager1032 can communicate with the kernel 1028 to interface with thegraphical system that provides the user interface(s) and supports thegraphics hardware, pointing devices, keyboard, touch-sensitive screens,etc. The windows manager 1032 may be a tiling window manager (i.e., awindow manager with an organization of the screen into mutuallynon-overlapping frames, as opposed to a coordinate-based stacking ofoverlapping objects (windows) that attempts to fully emulate the desktopmetaphor). The windows manager 1032 may read and store configurationfiles, in the system data 208, which can control the position of theapplication windows at precise positions.

An application manager 1036 can control the function of any applicationover the lifetime of the process. The process or application can belaunched from a panel launcher 1040 or from a remote console. Theapplication manager 1036 can intercept the process name and may takeappropriate action to manage that process. If the process is notrunning, the application manager 1036 can load the process and may bringthe process to a foreground in a display. The application manager 1036may also notify the windows manager 1032 to bring the associatedwindow(s) to a top of a window stack for the display. When a processstarts from a shell or a notification out of the context of the desktop,the application manager 1036 can scan files to match the process namewith the entry name provided. When a match is found, the applicationmanager 1036 can configure the process according to a settings file.

In some situations, the application manager 1036 may restrict anapplication as singleton (i.e., restricts the instantiation of a classto one object). If an application is already running and the applicationmanager 1036 is asked to run the application again, the applicationmanager 1036 can bring the running process to a foreground on a display.There can be a notification event exchange between the windows manager1032 and the application manager 1036 for activating the appropriatewindow for the foreground process. Once an application is launched, theapplication may not be terminated or killed. The application can be sentto the background, except, possibly, for some applications (e.g., mediaplayer, Bluetooth®, notifications, etc.), which may be given a lowestprocess priority.

The panel launcher 1040 can be a widget configured to be placed along aportion of the display. The panel launcher 1040 may be built fromdesktop files from a desktop folder. The desktop folder location can beconfigured by a configuration file stored in system data 208. The panellauncher 1040 can allow for the launching or executing of applicationsor processes by receiving inputs from a user interface to launchprograms.

A desktop plugin 1024 may be a software component that allows forcustomization of the desktop or software interface through theinitiation of plug-in applications.

One or more gestures used to interface with the vehicle control system204 may be as described in conjunction with FIG. 11A through 11K. FIGS.11A through 11H depict various graphical representations of gestureinputs that may be recognized by the devices 212, 248. The gestures maybe performed not only by a user's body part, such as a digit, but alsoby other devices, such as a stylus, that may be sensed by the contactsensing portion(s) of a screen associated with the device 212, 248. Ingeneral, gestures are interpreted differently, based on where thegestures are performed (either directly on a display or in a gesturecapture region). For example, gestures in a display may be directed to adesktop or application, and gestures in a gesture capture region may beinterpreted as for the system.

With reference to FIGS. 11A-11H, a first type of gesture, a touchgesture 1120, is substantially stationary on a portion (e.g., a screen,a display, etc.) of a device 212, 248 for a selected length of time. Acircle 1128 represents a touch or other contact type received atparticular location of a contact sensing portion of the screen. Thecircle 1128 may include a border 1132, the thickness of which indicatesa length of time that the contact is held substantially stationary atthe contact location. For instance, a tap 1120 (or short press) has athinner border 1132A than the border 1132B for a long press 1124 (or fora normal press). The long press 1124 may involve a contact that remainssubstantially stationary on the screen for longer time period than thatof a tap 1120. As will be appreciated, differently defined gestures maybe registered depending upon the length of time that the touch remainsstationary prior to contact cessation or movement on the screen.

With reference to FIG. 11C, a drag gesture 1100 on the screen is aninitial contact (represented by circle 1128) with contact movement 1136in a selected direction. The initial contact 1128 may remain stationaryon the screen for a certain amount of time represented by the border1132. The drag gesture typically requires the user to contact an icon,window, or other displayed image at a first location followed bymovement of the contact in a drag direction to a new second locationdesired for the selected displayed image. The contact movement need notbe in a straight line but have any path of movement so long as thecontact is substantially continuous from the first to the secondlocations.

With reference to FIG. 11D, a flick gesture 1104 on the screen is aninitial contact (represented by circle 1128) with truncated contactmovement 1136 (relative to a drag gesture) in a selected direction. Aflick may have a higher exit velocity for the last movement in thegesture compared to the drag gesture. The flick gesture can, forinstance, be a finger snap following initial contact. Compared to a draggesture, a flick gesture generally does not require continual contactwith the screen from the first location of a displayed image to apredetermined second location. The contacted displayed image is moved bythe flick gesture in the direction of the flick gesture to thepredetermined second location. Although both gestures commonly can movea displayed image from a first location to a second location, thetemporal duration and distance of travel of the contact on the screen isgenerally less for a flick than for a drag gesture.

With reference to FIG. 11E, a pinch gesture 1108 on the screen isdepicted. The pinch gesture 1108 may be initiated by a first contact1128A to the screen by, for example, a first digit and a second contact1128B to the screen by, for example, a second digit. The first andsecond contacts 1128A,B may be detected by a common contact sensingportion of a common screen, by different contact sensing portions of acommon screen, or by different contact sensing portions of differentscreens. The first contact 1128A is held for a first amount of time, asrepresented by the border 1132A, and the second contact 1128B is heldfor a second amount of time, as represented by the border 1132B. Thefirst and second amounts of time are generally substantially the same,and the first and second contacts 1128A,B generally occur substantiallysimultaneously. The first and second contacts 1128A,B generally alsoinclude corresponding first and second contact movements 1136A,B,respectively. The first and second contact movements 1136A,B aregenerally in opposing directions. Stated another way, the first contactmovement 1136A is towards the second contact 1136B, and the secondcontact movement 1136B is towards the first contact 1136A. More simplystated, the pinch gesture 1108 may be accomplished by a user's digitstouching the screen in a pinching motion.

With reference to FIG. 11F, a spread gesture 1110 on the screen isdepicted. The spread gesture 1110 may be initiated by a first contact1128A to the screen by, for example, a first digit, and a second contact1128B to the screen by, for example, a second digit. The first andsecond contacts 1128A,B may be detected by a common contact sensingportion of a common screen, by different contact sensing portions of acommon screen, or by different contact sensing portions of differentscreens. The first contact 1128A is held for a first amount of time, asrepresented by the border 1132A, and the second contact 1128B is heldfor a second amount of time, as represented by the border 1132B. Thefirst and second amounts of time are generally substantially the same,and the first and second contacts 1128A,B generally occur substantiallysimultaneously. The first and second contacts 1128A,B generally alsoinclude corresponding first and second contact movements 1136A,B,respectively. The first and second contact movements 1136A,B aregenerally in an opposing direction. Stated another way, the first andsecond contact movements 1136A,B are away from the first and secondcontacts 1128A,B. More simply stated, the spread gesture 1110 may beaccomplished by a user's digits touching the screen in a spreadingmotion.

The above gestures may be combined in any manner, such as those shown byFIGS. 11G and 11H, to produce a determined functional result. Forexample, in FIG. 11G a tap gesture 1120 is combined with a drag or flickgesture 1112 in a direction away from the tap gesture 1120. In FIG. 11H,a tap gesture 1120 is combined with a drag or flick gesture 1116 in adirection towards the tap gesture 1120.

The functional result of receiving a gesture can vary depending on anumber of factors, including a state of the vehicle 104, display, orscreen of a device, a context associated with the gesture, or sensedlocation of the gesture, etc. The state of the vehicle 104 commonlyrefers to one or more of a configuration of the vehicle 104, a displayorientation, and user and other inputs received by the vehicle 104.Context commonly refers to one or more of the particular application(s)selected by the gesture and the portion(s) of the application currentlyexecuting, whether the application is a single- or multi-screenapplication, and whether the application is a multi-screen applicationdisplaying one or more windows. A sensed location of the gesturecommonly refers to whether the sensed set(s) of gesture locationcoordinates are on a touch sensitive display or a gesture capture regionof a device 212, 248, whether the sensed set(s) of gesture locationcoordinates are associated with a common or different display, orscreen, or device 212, 248, and/or what portion of the gesture captureregion contains the sensed set(s) of gesture location coordinates.

A tap, when received by a touch sensitive display of a device 212, 248,can be used, for instance, to select an icon to initiate or terminateexecution of a corresponding application, to maximize or minimize awindow, to reorder windows in a stack, and/or to provide user input suchas by keyboard display or other displayed image. A drag, when receivedby a touch sensitive display of a device 212, 248, can be used, forinstance, to relocate an icon or window to a desired location within adisplay, to reorder a stack on a display, or to span both displays (suchthat the selected window occupies a portion of each displaysimultaneously). A flick, when received by a touch sensitive display ofa device 212, 248 or a gesture capture region, can be used to relocate awindow from a first display to a second display or to span both displays(such that the selected window occupies a portion of each displaysimultaneously). Unlike the drag gesture, however, the flick gesture isgenerally not used to move the displayed image to a specificuser-selected location but to a default location that is notconfigurable by the user.

The pinch gesture, when received by a touch sensitive display or agesture capture region of a device 212, 248, can be used to minimize orotherwise increase the displayed area or size of a window (typicallywhen received entirely by a common display), to switch windows displayedat the top of the stack on each display to the top of the stack of theother display (typically when received by different displays orscreens), or to display an application manager (a “pop-up window” thatdisplays the windows in the stack). The spread gesture, when received bya touch sensitive display or a gesture capture region of a device 212,248, can be used to maximize or otherwise decrease the displayed area orsize of a window, to switch windows displayed at the top of the stack oneach display to the top of the stack of the other display (typicallywhen received by different displays or screens), or to display anapplication manager (typically when received by an off-screen gesturecapture region on the same or different screens).

The combined gestures of FIG. 11G, when received by a common displaycapture region in a common display or screen of a device 212, 248, canbe used to hold a first window location constant for a display receivingthe gesture while reordering a second window location to include awindow in the display receiving the gesture. The combined gestures ofFIG. 11H, when received by different display capture regions in a commondisplay or screen of a device 212, 248 or in different displays orscreens of one more devices 212, 248, can be used to hold a first windowlocation for a display receiving the tap part of the gesture whilereordering a second window location to include a window in the displayreceiving the flick or drag gesture. Although specific gestures andgesture capture regions in the preceding examples have been associatedwith corresponding sets of functional results, it is to be appreciatedthat these associations can be redefined in any manner to producediffering associations between gestures and/or gesture capture regionsand/or functional results.

Gestures that may be completed in three-dimensional space and not on atouch sensitive screen or gesture capture region of a device 212, 248may be as shown in FIGS. 11I-11K. The gestures may be completed in anarea where a sensor, such as an optical sensor, infrared sensor, orother type of sensor, may detect the gesture. For example, the gesture1140 in FIG. 11I may be executed by a person when the person opens theirhand 1164 and moves their hand in a back and forth direction 1148 as agesture 1140 to complete some function with the vehicle 104. For examplegesture 1140 may change the station of the radio in the vehicle 104. Thesensors 242 may both determine the configuration of the hand 1164 andthe vector of the movement. The vector and hand configuration can beinterpreted to mean certain things to the vehicle control system 204 andproduce different results.

In another example of a gesture 1152 in FIG. 11J, a user may configuretheir hand 1164 to extend two fingers and move the hand 1164 in an upand down operation 1156. This gesture 1152 may control the volume of theradio or some other function. For instance, this gesture 1152 may beconfigured to place the vehicle in a “valet” mode to, among otherthings, restrict access to certain features associated with the vehicle.Again, the sensors 242 may determine how the person has configured theirhand 1164, and the vector of the movement. In another example of agesture 1160 shown in FIG. 11K, a user may extend their middle threefingers at an angle that is substantially 45° for vertical from straightvertical and circle the hand in a counter-clockwise motion 1166. Thisgesture 1160 may cause the automobile to change the heat setting or dosome other function. As can be understood by one skilled in the art, theconfigurations of the hand and the types of movement are variable. Thus,the user may configure the hand 1164 in any way imaginable and may alsomove that hand 1164 in any direction with any vector inthree-dimensional space.

The gestures 1140, 1152, 1160, as shown in FIGS. 11I-11K, may occur in apredetermined volume of space within the vehicle 104. For example, asensor may be configured to identify such gestures 1140, 1152, 1160between the front passenger's and front driver's seats over a consolearea within the passenger compartment of the vehicle 104. The gestures1140, 1152, 1160 may be made within area 1 508A between zones A 512A andB 512B. However, there may be other areas 508 where a user may usecertain gestures, where sensors 242 may be able to determine a certainfunction is desired. Gestures that may be similar but used in differentareas within the vehicle 104 may cause different functions to beperformed. For example, the gesture 1140 in FIG. 11I, if used in zone E512E, may change the heat provided in zone E 512E, but may change thestation of a radio if used in zone A 512A and/or zone B 512B. Further,the gestures may be made with other body parts or, for example,different expressions of a person's face and may be used to controlfunctions in the vehicle 104. Also, the user may use two hands in somecircumstances or do other types of physical movements that can causedifferent reactions in the vehicle 104.

FIGS. 12A-12D show various embodiments of a data structure 1200 to storedifferent settings. The data structure 1200 may include one or more ofdata files or data objects 1204, 1250, 1270, 1280. Thus, the datastructure 1200 may represent different types of databases or datastorage, for example, object-oriented data bases, flat file datastructures, relational database, or other types of data storagearrangements. Embodiments of the data structure 1200 disclosed hereinmay be separate, combined, and/or distributed. As indicated in FIGS.12A-12D, there may be more or fewer portions in the data structure 1200,as represented by ellipses 1244. Further, there may be more or fewerfiles in the data structure 1200, as represented by ellipses 1248.

Referring to FIG. 12A, a first data structure is shown. The data file1204 may include several portions 1208-1242 representing different typesof data. Each of these types of data may be associated with a user, asshown in portion 1208.

There may be one or more user records 1240 and associated data storedwithin the data file 1204. As provided herein, the user can be anyperson that uses or rides within the vehicle or conveyance 104. The usermay be identified in portion 1212. For the vehicle 104, the user mayinclude a set of one or more features that may identify the user. Thesefeatures may be the physical characteristics of the person that may beidentified by facial recognition or some other type of system. In othersituations, the user may provide a unique code to the vehicle controlsystem 204 or provide some other type of data that allows the vehiclecontrol system 204 to identify the user. The features or characteristicsof the user are then stored in portion 1212.

Each user, identified in portion 1208, may have a different set ofsettings for each area 508 and/or each zone 512 within the vehicle 104.Thus, each set of settings may also be associated with a predeterminedzone 512 or area 508. The zone 512 is stored in portion 1220, and thearea 508 is stored in portion 1216.

One or more settings may be stored in portion 1224. These settings 1224may be the configurations of different functions within the vehicle 104that are specified by or for that user. For example, the settings 1224may be the position of a seat, the position of a steering wheel, theposition of accelerator and/or brake pedals, positions of mirrors, aheating/cooling setting, a radio setting, a cruise control setting, orsome other type of setting associated with the vehicle 104. Further, invehicles adapted to have a configurable console or a configurable dashor heads-up display, the settings 1224 may also provide for how thatheads-up display, dash, or console are configured for this particularuser.

Each setting 1224 may be associated with a different area 508 or zone512. Thus, there may be more settings 1224 for when the user is thedriver and in zone A 512A, 512A, of area 1, 508A. However, there may besimilar settings 1224 among the different zones 512 or areas 508 asshown in portion 1224. For example, the heating or radio settings forthe user may be similar in every zone 512.

The sensors 242 within the vehicle 104 may be able to either obtain ortrack health data in portion 1228. Health data 1228 may include any typeof physical characteristic associated with the user. For example, aheart rate, a blood pressure, a temperature, or other types of heathdata may be obtained and stored in portion 1228. The user may have thishealth data tracked over a period of time to allow for statisticalanalysis of the user's health while operating the vehicle 104. In thisway, if some function of the user's health deviates from a norm (e.g., abaseline measurement, average measurements taken over time, and thelike), the vehicle 104 may be able to determine there is a problem withthe person and react to that data.

One or more gestures may be stored in portion 1232. Thus, the gesturesused and described in conjunction FIG. 11A through 11K may beconfigurable. These gestures may be determined or created by the userand stored in portion 1132. A user may have different gestures for eachzone 512 or area 508 within the vehicle. The gestures that do certainthings while driving may do other things while in a different area 508of the vehicle 104. Thus, the user may use a first set of gestures whiledriving and a second set while a passenger. Further, one or more usersmay share gestures as shown in portion 1232. Each driver may have acommon set of gestures that they use in zone A 512A, 512A. Each of thesegestures may be determined or captured and then stored with theircharacteristics (e.g., vector, position of gesture, etc.) in portion1232.

One or more sets of safety parameters may be stored in portion 1236.Safety parameters 1236 may be common operating characteristics for thisdriver/passenger or for all drivers/passengers that if deviated from maydetermine there is a problem with the driver/passenger or the vehicle104. For example, a certain route may be taken repeatedly and an averagespeed or mean speed may be determined. If the mean speed deviates bysome number of standard deviations, a problem with the vehicle 104 orthe user may be determined. In another example, the healthcharacteristics or driving experience of the user may be determined. Ifthe user drives in a certain position where their head occupies acertain portion of three-dimensional space within the vehicle 104, thevehicle control system 204 may determine that the safety parameterincludes the users face or head being within this certain portion of thevehicle interior space. If the user's head deviates from that interiorspace for some amount of time, the vehicle control system 204 candetermine that something is wrong with the driver and change thefunction or operation of the vehicle 104 to assist the driver. This mayhappen, for example, when a user falls asleep at the wheel. If theuser's head droops and no longer occupies a certain three dimensionalspace, the vehicle control system 204 can determine that the driver hasfallen asleep and may take control of the operation of the vehicle 204and the automobile controller 8104 may steer the vehicle 204 to the sideof the road. In other examples, if the user's reaction time is too slowor some other safety parameter is not nominal, the vehicle controlsystem 204 may determine that the user is inebriated or having someother medical problem. The vehicle control system 204 may then assumecontrol of the vehicle to ensure that the driver is safe.

Information corresponding to a user and/or a user profile may be storedin the profile information portion 1238. For example, the profileinformation 1238 may include data relating to at least one of currentdata, historical data, a user preference, user habit, user routine,observation, location data (e.g., programmed and/or requesteddestinations, locations of parking, routes traveled, average drivingtime, etc.), social media connections, contacts, brand recognition(e.g., determined via one or more sensors associated with the vehicle104, a device 212, 248, etc.), audible recording data, text data, emaildata, political affiliation, preferred retail locations/sites (e.g.,physical locations, web-based locations, etc.), recent purchases,behavior associated with the aforementioned data, and the like. The datain the profile information portion 1238 may be stored in one or more ofthe data structures 1200 provided herein. As can be appreciated, theseone or more data structures may be stored in one or more memorylocations. Examples of various memory locations are described inconjunction with FIG. 2.

One or more additional data fields may be stored in the linked dataportion 1242 as data and/or locations of data. The linked data 1242 mayinclude at least one of pointers, addresses, location identification,data source information, and other information corresponding toadditional data associated with the data structure 1200. Optionally, thelinked data portion 1242 may refer to data stored outside of aparticular data structure 1200. For example, the linked data portion1242 may include a link/locator to the external data. Continuing thisexample, the link/locator may be resolved (e.g., via one or more of themethods and/or systems provided herein, etc.) to access the data storedoutside of the data structure 1200. Additionally or alternatively, thelinked data portion 1242 may include information configured to link thedata objects 1204 to other data files or data objects 1250, 1270, 1280.For instance, the data object 1204 relating to a user may be linked toat least one of a device data object 1250, a vehicle system data object1270, and a vehicle data object 1280, to name a few.

An embodiment of a data structure 1200 to store information associatedwith one or more devices is shown in FIG. 12B. The data file 1250 mayinclude several portions 1216-1262 representing different types of data.Each of these types of data may be associated with a device, as shown inportion 1252.

There may be one or more device records 1250 and associated data storedwithin the data file 1250. As provided herein, the device may be anydevice that is associated with the vehicle 104. For example, a devicemay be associated with a vehicle 104 when that device is physicallylocated within the interior space 108 of the vehicle 104. As anotherexample, a device may be associated with a vehicle 104 when the deviceregisters with the vehicle 104. Registration may include pairing thedevice with the vehicle 104 and/or one or more of the vehicle systems(e.g., as provided in FIG. 3). In some cases, the registration of adevice with a vehicle 104 may be performed manually and/orautomatically. An example of automatic registration may includedetecting, via one or more of the vehicle systems, that a device isinside the vehicle 104. Upon detecting that the device is inside thevehicle 104, the vehicle system may identify the device and determinewhether the device is or should be registered. Registration may beperformed outside of a vehicle 104 via providing a unique code to thevehicle 104 and/or at least one of the vehicle systems.

The device may be identified in portion 1256. Among other things, thedevice identification may be based on the hardware associated with thedevice (e.g., Media Access Control (MAC) address, Burned-In Address(BIA), Ethernet Hardware Address (EHA), physical address, hardwareaddress, and the like).

Optionally, a device may be associated with one or more users. Forexample, a tablet and/or graphical user interface (GUI) associated withthe vehicle 104 may be used by multiple members of a family. Forinstance, the GUI may be located in a particular area 508 and/or zone512 of the vehicle 104. Continuing this example, when a family member islocated in the particular area 508 and/or zone 512, the device mayinclude various settings, features, priorities, capabilities, and thelike, based on an identification of the family member. The user may beidentified in portion 1254. For the device, the user identificationportion 1254 may include a set of one or more features that may identifya particular user. These features may be the physical characteristics ofthe person that may be identified by facial recognition, or some othertype of system, associated with the device and/or the vehicle 104.Optionally, the user may provide a unique code to the device, or providesome other type of data, that allows the device to identify the user.The features or characteristics of the user are then stored in portion1254.

Each device identified in the device identification portion 1256 mayhave a different set of settings for each area 508 and/or each zone 512,and/or each user of the device. Thus, each set of settings may also beassociated with a predetermined zone 512, area 508, and/or user. Thezone 512 is stored in portion 1220 and the area 508 is stored in portion1216.

One or more settings may be stored in portion 1224. These settings 1224may be similar and/or identical to those previously described. Further,the settings 1224 may also provide for how a device is configured for aparticular user. Each setting 1224 may be associated with a differentarea 508 or zone 512. Thus, there may be more restrictive settings 1224(e.g., restricted multimedia, texting, limited access to devicefunctions, and the like) for the device when the user is the driver andin zone A 512A, 512A, of area 1, 508A. However, when the user is inanother zone 512 or area 508, for example, where the user is notoperating a vehicle 104, the settings 1224 may provide unrestrictedaccess to one or more features of the device (e.g., allowing texting,multimedia, etc.).

Optionally, the capabilities of a device may be stored in portion 1258.Examples of device capabilities may include, but are not limited to, acommunications ability (e.g., via wireless network, EDGE, 3G, 4G, LTE,wired, Bluetooth®, Near Field Communications (NFC), Infrared (IR),etc.), hardware associated with the device (e.g., cameras, gyroscopes,accelerometers, touch interface, processor, memory, display, etc.),software (e.g., installed, available, revision, release date, etc.),firmware (e.g., type, revision, etc.), operating system, system status,and the like. Optionally, the various capabilities associated with adevice may be controlled by one or more of the vehicle systems providedherein. Among other things, this control allows the vehicle 104 toleverage the power and features of various devices to collect, transmit,and/or receive data.

One or more priorities may be stored in portion 1260. The priority maycorrespond to a value, or combination of values, configured to determinehow a device interacts with the vehicle 104 and/or its various systems.The priority may be based on a location of the device (e.g., as storedin portions 1216, 1220). A default priority can be associated with eacharea 508 and/or zone 512 of a vehicle 104. For example, the defaultpriority associated with a device found in zone 1 512A of area 1 508A(e.g., a vehicle operator position) may be set higher than an (or thehighest of any) alternative zone 512 or area 508 of the vehicle 104.Continuing this example, the vehicle 104 may determine that, althoughother devices are found in the vehicle, the device, having the highestpriority, controls features associated with the vehicle 104. Thesefeatures may include vehicle control features, critical and/ornon-critical systems, communications, and the like. Additionally oralternatively, the priority may be based on a particular user associatedwith the device. Optionally, the priority may be used to determine whichdevice will control a particular signal in the event of a conflict.

Registration data may be stored in portion 1262. As described above,when a particular device registers with a vehicle 104, data related tothe registration may be stored in the registration data portion 1262.Such data may include, but is not limited to, registration information,registration codes, initial registration time, expiration ofregistration, registration timers, and the like. Optionally, one or moresystems of the vehicle 104 may refer to the registration data portion1262 to determine whether a device has been previously registered withthe vehicle 104. As shown in FIG. 12B, User 4 of Device 2 has not beenregistered. In this case, the registration data field 1262, for thisuser, may be empty, contain a null value, or otherinformation/indication that there is no current registration informationassociated with the user.

Additionally or alternatively, the data structure 1200 may include aprofile information portion 1238 and/or a linked data portion 1242.Although the profile information portion 1238 and/or the linked dataportion 1242 may include different information from that describedabove, it should be appreciated that the portions 1238, 1242 may besimilar, or identical, to those as previously disclosed.

An embodiment of a data structure 1200 to store information associatedwith one or more vehicle systems is shown in FIG. 12C. The data file1270 may include several portions 1216-1279 representing different typesof data. Each of these types of data may be associated with a vehiclesystem, as shown in portion 1272.

There may be one or more system records 1270 and associated data storedwithin the data file 1270. As provided herein, the vehicle systems maybe any system and/or subsystem that is associated with the vehicle 104.Examples of various systems are described in conjunction with FIG. 3 andother related figures (e.g., systems 324-352, etc.). One example of asystem associated with the vehicle 104 is the vehicle control system204. Other systems may include communications subsystems 344, vehiclesubsystems 328, and media subsystems 348, to name a few. It should beappreciated that the various systems may be associated with the interiorspace 108 and/or the exterior of the vehicle 104.

Each system may include one or more components. The components may beidentified in portion 1274. Identification of the one or more componentsmay be based on hardware associated with the component. Thisidentification may include hardware addresses similar to those describedin conjunction with the devices of FIG. 12B. Additionally oralternatively, a component can be identified by one or more signals sentvia the component. Such signals may include an Internet Protocol (IP),or similar, address as part of the signal. Optionally, the signal mayidentify the component sending the signal via one or more of a header, afooter, a payload, and/or an identifier associated with the signal(e.g., a packet of a signal, etc.).

Each system and/or component may include priority type information inportion 1276. Among other things, the priority type information storedin portion 1276 may be used by the various methods and systems providedherein to differentiate between critical and non-critical systems.Non-limiting examples of critical systems may correspond to thosesystems used to control the vehicle 104, such as, steering control,engine control, throttle control, braking control, and/or navigationinformational control (e.g., speed measurement, fuel measurement, etc.)Non-critical systems may include other systems that are not directlyrelated to the control of the vehicle 104. By way of example,non-critical systems may include media presentation, wirelesscommunications, comfort settings systems (e.g., climate control, seatposition, seat warmers, etc.), and the like. Although examples ofcritical and/or non-critical systems are provided above, it should beappreciated that the priority type of a system may change (e.g., fromcritical to non-critical, from non-critical to critical, etc.) dependingon the scenario. For instance, although the interior climate controlsystem may be classified as a non-critical system at a first point intime, it may be subsequently classified as a critical system when atemperature inside/outside of the vehicle 104 is measured at a dangerouslevel (e.g., sub-zero Fahrenheit, greater than 90-degrees Fahrenheit,etc.). As such, the priority type may be associated with temperatureconditions, air quality, times of the day, condition of the vehicle 104,and the like.

Each system may be associated with a particular area 508 and/or zone 512of a vehicle 104. Among other things, the location of a system may beused to assess a state of the system and/or provide how the systeminteracts with one or more users of the vehicle 104. As can beappreciated each system may have a different set of settings for eacharea 508 and/or each zone 512, and/or each user of the system. Thus,each set of settings may also be associated with a predetermined zone512, area 508, system, and/or user. The zone 512 is stored in portion1220 and the area 508 is stored in portion 1216.

One or more settings may be stored in portion 1224. These settings 1224may be similar and/or identical to those previously described. Further,the settings 1224 may also provide for how a system is configured for aparticular user. Each setting 1224 may be associated with a differentarea 508 or zone 512. For instance, a climate control system may beassociated with more than one area 508 and/or zone 512. As such, a firstuser seated in zone 1 512A of area 1 508A may store settings related tothe climate control of that zone 512A that are different from otherusers and/or zones 512 of the vehicle 104. Optionally, the settings maynot be dependent on a user. For instance, specific areas 508 and/orzones 512 of a vehicle 104 may include different, default, or the samesettings based on the information stored in portion 1224.

The various systems and/or components may be able to obtain or trackhealth status data of the systems and/or components in portion 1278. Thehealth status 1278 may include any type of information related to astate of the systems. For instance, an operational condition,manufacturing date, update status, revision information, time inoperation, fault status, state of damage detected, inaccurate datareporting, and other types of component/system health status data may beobtained and stored in portion 1278.

Each component and/or system may be configured to communicate withusers, systems, servers, vehicles, third parties, and/or other endpointsvia one or more communication type. At least one communication abilityand/or type associated with a system may be stored in the communicationtype portion 1279. Optionally, the communication types contained in thisportion 1279 may be ordered in a preferential order of communicationtypes. For instance, a system may be configured to preferablycommunicate via a wired communication protocol over one or more wiredcommunication channels (e.g., due to information transfer speeds,reliability, and the like). However, in this instance, if the one ormore wired communication channels fail, the system may transferinformation via an alternative communication protocol and channel (e.g.,a wireless communication protocol and wireless communication channel,etc.). Among other things, the methods and systems provided herein maytake advantage of the information stored in the communication typeportion 1279 to open available communication channels in the event of acommunication channel failure, listen on other ports for informationtransmitted from the systems, provide a reliability rating based on thenumber of redundant communication types for each component, and more.Optionally, a component or system may be restricted from communicatingvia a particular communication type (e.g., based on rules, traffic,critical/non-critical priority type, and the like). In this example, thecomponent or system may be forced by the vehicle control system 204 touse an alternate communication type where available, ceasecommunications, or store communications for later transfer.

Additionally or alternatively, the data structure 1200 may include aprofile information portion 1238 and/or a linked data portion 1242.Although the profile information portion 1238 and/or the linked dataportion 1242 may include different information from that describedabove, it should be appreciated that the portions 1238, 1242 may besimilar, or identical, to those as previously disclosed.

Referring now to FIG. 12D, a data structure 1200 is shown optionally.The data file 1280 may include several portions 1216-1286 representingdifferent types of data. Each of these types of data may be associatedwith a vehicle, as shown in portion 1282.

There may be one or more vehicle records 1280 and associated data storedwithin the data file 1282. As provided herein, the vehicle 104 can beany vehicle or conveyance 104 as provided herein. The vehicle 104 may beidentified in portion 1282. Additionally or alternatively, the vehicle104 may be identified by one or more systems and/or subsystems. Thevarious systems of a vehicle 104 may be identified in portion 1284. Forexample, various features or characteristics of the vehicle 104 and/orits systems may be stored in portion 1284. Optionally, the vehicle 104may be identified via a unique code or some other type of data thatallows the vehicle 104 to be identified.

Each system may be associated with a particular area 508 and/or zone 512of a vehicle 104. Among other things, the location of a system may beused to assess a state of the system and/or provide how the systeminteracts with one or more users of the vehicle 104. As can beappreciated each system may have a different set of settings for eacharea 508 and/or each zone 512, and/or each user of the system. Thus,each set of settings may also be associated with a predetermined zone512, area 508, system, and/or user. The zone 512 is stored in portion1220 and the area 508 is stored in portion 1216.

One or more settings may be stored in portion 1224. These settings 1224may be similar and/or identical to those previously described. Further,the settings 1224 may also provide for how a vehicle and/or its systemsare configured for one or more users. Each setting 1224 may beassociated with a different area 508 or zone 512. Optionally, thesettings may not be dependent on a particular user. For instance,specific areas 508 and/or zones 512 of a vehicle 104 may includedifferent, default, or the same settings based on the information storedin portion 1224.

The various systems and/or components may be able to obtain or trackhealth status data of the systems and/or components in portion 1278. Thehealth status 1278 may include any type of information related to astate of the systems. For instance, an operational condition,manufacturing date, update status, revision information, time inoperation, fault status, state of damage detected, inaccurate datareporting, and other types of component/system health status data may beobtained and stored in portion 1278.

One or more warnings may be stored in portion 1286. The warnings data1286 may include warning generated by the vehicle 104, systems of thevehicle 104, manufacturer of the vehicle, federal agency, third party,and/or a user associated with the vehicle. For example, severalcomponents of the vehicle may provide health status information (e.g.,stored in portion 1278) that, when considered together, may suggest thatthe vehicle 104 has suffered some type of damage and/or failure.Recognition of this damage and/or failure may be stored in the warningsdata portion 1286. The data in portion 1286 may be communicated to oneor more parties (e.g., a manufacturer, maintenance facility, user,etc.). In another example, a manufacturer may issue a recallnotification for a specific vehicle 104, system of a vehicle 104, and/ora component of a vehicle 104. It is anticipated that the recallnotification may be stored in the warning data field 1286. Continuingthis example, the recall notification may then be communicated to theuser of the vehicle 104 notifying the user of the recall issued by themanufacturer.

Additionally or alternatively, the data structure 1200 may include aprofile information portion 1238 and/or a linked data portion 1242.Although the profile information portion 1238 and/or the linked dataportion 1242 may include different information from that describedabove, it should be appreciated that the portions 1238, 1242 may besimilar, or identical, to those as previously disclosed.

An embodiment of a method 1300 for storing settings for a user 216associated with vehicle 104 is shown in FIG. 13. While a general orderfor the steps of the method 1300 is shown in FIG. 13, the method 1300can include more or fewer steps or can arrange the order of the stepsdifferently than those shown in FIG. 13. Generally, the method 1300starts with a start operation 1304 and ends with an end operation 1336.The method 1300 can be executed as a set of computer-executableinstructions executed by a computer system and encoded or stored on acomputer readable medium. Hereinafter, the method 1300 shall beexplained with reference to the systems, components, modules, software,data structures, user interfaces, etc. described in conjunction withFIGS. 1-12.

A person may enter the vehicle space 108. One or more sensors 242 maythen identify that a person is sitting within the vehicle 104, in step1308. For example, sensors 242 in a seat, may determine that some newamount of weight has been registered. The amount of weight may fallwithin predetermined parameters (e.g., over a threshold, in a specificrange, etc.). This weight may then be determined to be a person by oneor more optical or other sensors 242. The vehicle control system 204 maythen determine that a person is in a certain zone 512 or area 508. Forexample, the sensors 242 may send signals to the vehicle controls system204 that an event has occurred. This information may be sent to thevehicle control system processor 304 to determine the zone 512 and area508 where the event occurred. Further, the vehicle control system 204may then identify the person, in step 1312.

The vehicle control system 204 can receive the information from thesensors 242 and use that information to search the database 1200 thatmay be stored within the system data 208. The sensor data may becompared to ID characteristics 1212 to determine if the person hasalready been identified. The vehicle control system 204 may also sendthe characteristic data from the sensors to the communication network224 to a server 228 to compare the sensor data to stored data 232 thatmay be stored in a cloud system. The person's features can be comparedto stored features 1212 to determine if the person in the vehicle 104can be identified.

If the person has been identified previously and their characteristicsstored in portion 1212, the method 1300 proceeds YES to step 1316 wherethat person may be identified. In identifying a person, the informationassociated with that person 1240 may be retrieved and provided to thevehicle control system 204 for further action. If a person cannot beidentified by finding their sensor characteristics in portion 1212, themethod 1300 proceeds NO to step 1320. In step 1320, the vehicle controlsystem 204, using an application, may create a new record in table 1200for the user. This new record may store a user identifier and theircharacteristics 1212. It may also store the area 508 and zone 512 indata portions 1216 and 1220. The new record may then be capable ofreceiving new settings data for this particular user. In this way, thevehicle 104 can automatically identify or characterize a person so thatsettings may be established for the person in the vehicle 104.

The input module 312 may then determine if settings are to be stored, instep 1324. Settings might be any configuration of the vehicle 104 thatmay be associated with the user. The determination may be made afterreceiving a user input from the user. For example, the user may make aselection on a touch sensitive display indicating that settingscurrently made are to be stored. In other situations, a period of timemay elapse after the user has made a configuration. After determiningthat the user is finished making changes to the settings, based on thelength of the period of time since the setting was established, thevehicle control system 204 can save the setting. Thus, the vehiclecontrol system 204 can make settings automatically based on reaching asteady state for settings for user.

The vehicle control system 204 may then store the settings for theperson, in step 1328. The user interaction subsystem 332 can make a newentry for the user 1208 in data structure 1204. The new entry may beeither a new user or a new settings listed in 1224. The settings may bestored based on the area 508 and zone 512. As explained previously, thesettings can be any kind of configuration of the vehicle 104 that may beassociated with the user in that area 508 and the zone 512.

The settings may also be stored in cloud storage, in step 1332. Thus,the vehicle control system 204 can send the new settings to the server228 to be stored in storage 232. In this way, these new settings may beported to other vehicles for the user. Further, the settings in storagesystem 232 may be retrieved, if local storage does not include thesettings in storage system 208.

Additionally or alternatively, the settings may be stored in profiledata 252. As provided herein, the profile data 252 may be associatedwith one or more devices 212, 248, servers 228, vehicle control systems204, and the like. Optionally, the settings in profile data 252 may beretrieved in response to conditions. For instance, the settings may beretrieved from at least one source having the profile data if localstorage does not include the settings in storage system 208. As anotherexample, a user 216 may wish to transfer settings stored in profile data252 to the system data 208. In any event, the retrieval and transfer ofsettings may be performed automatically via one or more devices 204,212, 248, associated with the vehicle 104.

An embodiment of a method 1400 to configure the vehicle 104 based onstored settings is shown in FIG. 14. A general order for the steps ofthe method 1400 is shown in FIG. 14. Generally, the method 1400 startswith a start operation 1404 and ends with an end operation 1428. Themethod 1400 can include more or fewer steps or can arrange the order ofthe steps differently than those shown in FIG. 14. The method 1400 canbe executed as a set of computer-executable instructions executed by acomputer system and encoded or stored on a computer readable medium.Hereinafter, the method 1400 shall be explained with reference to thesystems, components, modules, software, data structures, userinterfaces, etc. described in conjunction with FIGS. 1-13.

The vehicle control system 204 can determine if a person is in a zone512 or area 508, in step 1408. This determination may be made byreceiving data from one or more sensors 242. The vehicle 104 can usefacial recognition, weight sensors, heat sensors, or other sensors todetermine whether a person is occupying a certain zone 512.

Using the information from the sensors 242, the vehicle control system204 can identify the person, in step 1412. The vehicle control system204 can obtain characteristics for the user currently occupying the zone512 and compare those characteristics to the identifying features inportion 1212 of data structure 1204. Thus, the settings in portion 1224may be retrieved by identifying the correct zone 512, area 508, andcharacteristics for the user.

The vehicle control system 204 can first determine if there are settingsassociated with the identified person for that zone 512 and/or area 508,in step 1416. After identifying the user by matching characteristicswith the features in portion 1212, the vehicle control system 204 candetermine if there are settings for the user for the area 1216 and zone1220 the user currently occupies. If there are settings, then thevehicle control system 204 can make the determination that there aresettings in portion 1224, and the vehicle control system 204 may thenread and retrieve those settings, in step 1420. The settings may be thenused to configure or react to the presence of the user, in step 1424.Thus, these settings may be obtained to change the configuration of thevehicle 104, for example, how the position of the seats or mirrors areset, how the dash, console, or heads up display is configured, how theheat or cooling is configured, how the radio is configured, or how otherdifferent configurations are made.

Embodiments of a method 1500 for storing settings in cloud storage areshown in FIG. 15. A general order for the steps of the method 1500 isshown in FIG. 15. Generally, the method 1500 starts with a startoperation 1504 and ends with an end operation 1540. The method 1500 caninclude more or fewer steps or can arrange the order of the stepsdifferently than those shown in FIG. 15. The method 1500 can be executedas a set of computer-executable instructions executed by a computersystem and encoded or stored on a computer readable medium. Hereinafter,the method 1500 shall be explained with reference to the systems,components, modules, software, data structures, user interfaces, etc.described in conjunction with FIGS. 1-14.

The vehicle control system 204 can determine if a person is in a zone512 or area 508, in step 1508. As explained previously, the vehiclecontrol system 204 can receive vehicle sensor data from vehicle sensors242 that show a person has occupied a zone 512 or an area 508 of thevehicle 104. Using the vehicle sensor data, the vehicle control system204 can determine characteristics of the person, in step 1512. Thesecharacteristics are compared to the features in portion 1212 of the datastructure 1204. From this comparison, the vehicle control system 204 candetermine if the person is identified within the data structure 1204, instep 1516. If there is a comparison and the person can be identified,the method 1500 proceeds YES to step 1520. However, if the person cannotbe identified, the method 1500 proceeds NO, to step 1524.

In step 1520, the person is identified in portion 1208 by the successfulcomparison of the characteristics and the features. It should be notedthat there may be a degree of variability between the characteristicsand the features in portion 1212. Thus, the comparison may not be anexact comparison but may use methods known in the art to make astatistically significant comparison between the characteristicsreceived from the sensors 242 and the features stored in portion 1212.In step 1524, the characteristics received from sensors 242 are used tocharacterize the person. In this way, the received characteristics maybe used as an ID, in portion 1212, for a new entry for a new user inportion 1208.

The user may make one or more settings for the vehicle 104. The vehiclecontrol system 204 may determine if the settings are to be stored, instep 1528. If the settings are to be stored, the method 1500 proceedsYES to step 1536. If the settings are not to be stored or if there areno settings to be stored, the method 1500 proceeds NO to step 1532. Instep 1532, the vehicle control system 204 can retrieve the settings inthe portion 1224 of the data structure 1204. Retrieval of the settingsmay be as described in conjunction with FIG. 14. If settings are to bestored, the vehicle control system 204 can send those settings to server228 to be stored in data storage 232, in step 1536. Data storage 232acts as cloud storage that can be used to retrieve information on thesettings from other vehicles or from other sources. Thus, the cloudstorage 232 allows for permanent and more robust storage of userpreferences for the settings of the vehicle 104.

An embodiment of a method 1600 for storing gestures associated with theuser is shown in FIG. 16. A general order for the steps of the method1600 is shown in FIG. 16. Generally, the method 1600 starts with a startoperation 1604 and ends with an end operation 1640. The method 1600 caninclude more or fewer steps or can arrange the order of the stepsdifferently than those shown in FIG. 16. The method 1600 can be executedas a set of computer-executable instructions executed by a computersystem and encoded or stored on a computer readable medium. Hereinafter,the method 1600 shall be explained with reference to the systems,components, modules, software, data structures, user interfaces, etc.described in conjunction with FIGS. 1-15.

Vehicle control system 204 may receive sensor data from sensors 242 todetermine a person is occupying a zone 512 in an area 508 of the vehicle104, in step 1608. The sensor data may provide characteristics for theperson, in step 1612. The vehicle control system 204 may then use thecharacteristics to determine if the person can be identified, in step1616. The vehicle control system 204 may compare the characteristics tothe features in portion 1212 for the people having been recognized andhaving data associated therewith. If a comparison is made between thecharacteristics and the features in portion 1212, the person can beidentified, and the method 1600 proceeds YES to step 1620. If there isno comparison, the method 1600 may proceed NO to step 1624. In step1620, the person may be identified by the vehicle control system 204.Thus, the person's features and associated data record 1240 may bedetermined and the user identified in portion 1208. If the person is notidentified, the vehicle control system 204 can characterize the personin step 1624 by establishing a new record in data structure 1204 usingthe characteristics, received from the sensors 242, for the features inportion 1212.

Thereinafter, the vehicle control system 204 may determine if gesturesare to be stored and associated with the user, in step 1628. The vehiclecontrol system 204 may receive user input on a touch sensitive displayor some other type of gesture capture region which acknowledges that theuser wishes to store one or more gestures. Thus, the user may createtheir own gestures such as those described in conjunction with FIGS.11A-11K. These gestures may then be characterized and stored in datastructure 1204. If there are gestures to be stored, the method 1600proceeds YES to step 1636. If gestures are not to be stored the method1600 may proceed NO to step 1632.

In step 1632, the vehicle control system 204 can retrieve currentgestures from portion 1232, which are associated with user 1240. Thesegestures may be used then to configure how the vehicle 104 will react ifa gesture is received. If gestures are to be stored, the vehicle controlsystem 204 may store characteristics, in step 1636, as received fromsensor 242 or from one more user interface inputs. These characteristicsmay then be used to create the stored gestures 1232, in data structure1204. The characteristics may include what the gesture looks like orappears and also what affect the gesture should have. This informationmay then be used to change the configuration or operation of the vehicle104 based on the gesture if it is received at a later time.

An embodiment of a method 1700 for receiving a gesture and configuringthe vehicle 104 based on the gesture may be as provided in FIG. 17. Ageneral order for the steps of the method 1700 is shown in FIG. 17.Generally, the method 1700 starts with a start operation 1704 and endswith an end operation 1728. The method 1700 can include more or fewersteps or can arrange the order of the steps differently than those shownin FIG. 17. The method 1700 can be executed as a set ofcomputer-executable instructions executed by a computer system andencoded or stored on a computer readable medium. Hereinafter, the method1700 shall be explained with reference to the systems, components,modules, software, data structures, user interfaces, etc. described inconjunction with FIGS. 1-16.

A vehicle control system 204 can receive sensor data from vehiclesensors 242. The vehicle sensor data can be used by the vehicle controlsystem 204 to determine that a person is in a zone 512 or area 508, instep 1708. The vehicle sensor data may then be used to compare againstfeature characteristics 1212 to identify a person, in step 1712. Thevehicle control system 204 thereinafter may receive a gesture, in step1716. The gesture may be perceived by vehicle sensors 242 or received ina gesture capture region. The gesture may be as described in conjunctionwith FIGS. 11A-11K. Upon receiving the gesture, the vehicle controlsystem 204 can compare the gesture to gesture characteristics in portion1232, in step 1720. The comparison may be made so that a statisticallysignificant correlation between the sensor data or gesture data and thegesture characteristic 1232 is made. Upon identifying the gesture, thevehicle control system 204 can configure the vehicle 104 and/or react tothe gesture, in step 1724. The configuration or reaction to the gesturemay be as prescribed in the gesture characteristic 1232.

An embodiment of a method 1800 for storing health data may be as shownin FIG. 18. A general order for the steps of the method 1800 is shown inFIG. 18. Generally, the method 1800 starts with a start operation 1804and ends with an end operation 1844. The method 1800 can include more orfewer steps or can arrange the order of the steps differently than thoseshown in FIG. 18. The method 1800 can be executed as a set ofcomputer-executable instructions executed by a computer system andencoded or stored on a computer readable medium. Hereinafter, the method1800 shall be explained with reference to the systems, components,modules, software, data structures, user interfaces, etc. described inconjunction with FIGS. 1-17.

Vehicle control system 204 can receive sensor data from sensors 242. Thesensor data may be used to determine that a person is in a zone 512 orarea 508, in step 1808. The sensor data may then be used to determinecharacteristics of the person, in step 1812. From the characteristics,the vehicle control system 204 can determine if a person may beidentified in data structure 1204, in step 1816. If it is determinedthat the person can be identified in step 1816, the method 1800 proceedsYES to step 1820. If the person cannot be identified, the method 1800proceeds NO to step 1824. A person may be identified by matching thecharacteristics of a person from the sensor data to the features shownin portion 1212. If these comparisons are statistically significant, theperson may be identified in portion 1208, in step 1820. However, if theperson is not identified in portion 1208, the vehicle control system 204can characterize the person using the vehicle sensor data, in step 1824.In this way, the vehicle control system 204 can create a new record fora new user in data structure 1204.

Thereinafter, the vehicle control system 204 may receive health and/orsafety data from the vehicle sensors 242, in step 1828. The vehiclecontrol system 204 can determine if the health or safety data is to bestored, in step 1832. The determination is made as to whether or notthere is sufficient health data or safety parameters, in portion 1228and 1236, to provide a reasonable baseline data pattern for the user1240. If there is data to be received and stored, the vehicle controlsystem 204 can store the data for the person in portions 1228 and 1236of the data structure 1204, in step 1832.

The vehicle control system 204 may then wait a period of time, in step1836. The period of time may be any amount of time from seconds tominutes to days. Thereinafter, the vehicle control system 204 canreceive new data from vehicle sensors 242, in step 1828. Thus, thevehicle control system 204 can receive data periodically and update orcontinue to refine the health data and safety parameters in datastructure 1204. Thereinafter, the vehicle control system 204 mayoptionally store the health and safety data in cloud storage 232 bysending it through the communication network 224 to the server 228, instep 1840.

An embodiment of a method 1900 for monitoring the health of a user maybe as shown in FIG. 19. A general order for the steps of the method 1900is shown in FIG. 19. Generally, the method 1900 starts with a startoperation 1904 and ends with an end operation 1928. The method 1900 caninclude more or fewer steps or can arrange the order of the stepsdifferently than those shown in FIG. 19. The method 1900 can be executedas a set of computer-executable instructions executed by a computersystem and encoded or stored on a computer readable medium. Hereinafter,the method 1900 shall be explained with reference to the systems,components, modules, software, data structures, user interfaces, etc.described in conjunction with FIGS. 1-18.

The vehicle control system 204 can receive health data from sensors 242.The health data may be received in step 1908. The vehicle control system204 may then compare the received health data to stored healthparameters in portion 1228 or portion 1236, in step 1912. The comparisonmay check if there is statistically significant separation ordisagreement between the received health data and the stored healthdata. Thus, the vehicle control system 204 can make a health comparisonof the user based on a baseline of health data previously stored. Astatistically significant comparison may include determining if thereare any parameters more than three standard deviations from the averageor norm, any parameter that is increasing or decreasing over a period ofeight different measurements, a measurement that is more than twostandard deviations from the norm more than three measurementsconsecutively, or other types of statistical comparisons.

If the vehicle control system 204 determines that measured healthparameter does deviate from the norm, the vehicle control system 204 candetermine whether the health data is within acceptable limits, in step1916. If the health data is within acceptable limits, the method 1900proceeds YES back to receiving new health data, in step 1908. In thisway, the health data is periodically or continually monitored to ensurethat the driver is in a healthy state and able to operate the vehicle.If the health data is not within acceptable parameters, the method 1900may proceed NO to step 1924 where the vehicle control system 204 mayreact to the change in the health data. The reaction may include anymeasure to provide for the safety of the user, such as stopping thevehicle, beginning to drive the vehicle, driving the vehicle to a newlocation, such as a hospital, waking the driver with an alarm or othernoise, or performing some other function that may help maintain thehealth or safety of the user.

The health data received may be a reaction from the driver. For example,the driver may call for help or ask the vehicle for assistance. Forexample, the driver or passenger may say that they are having a medicalemergency and ask the car to perform some function to help. The functionto help may include driving the person to a hospital or stopping the carand calling for emergency assistance.

Vehicle Network Security

Vehicle network security is a major obstacle to be overcome in makingvehicles Internet capable. Firewall 484 can provide security but, due tothe seriousness of the consequences to public safety of a securitybreach, additional security measures are desirable.

Network security can use a common computer to run simultaneously firstand second operating systems, respectively, for critical andnon-critical tasks, functions, and operations of each processing moduleof the vehicle control system 204, whereby, in the event of a securitybreach event, the second operating system is disabled or its executiondiscontinued.

Other vehicle network security algorithms will be discussed withreference to FIGS. 23-25. An effective approach to protecting thecritical tasks, functions, and operations from attack is to have onecomputer that handles vehicle tasks, functions, and operations and adifferent computer that handles infotainment tasks, functions, andoperations. The first and second computers (and the distributedprocessing networks of which each of the first and second computers area part) are disconnected from one another and unable to communicate withone another either wirelessly or non-wirelessly (e.g., by a signaltransmission line such as a bus). The first computer (and/or anycomponent in the distributed processing component of which it is a part)is not discoverable by the vehicle wireless network access points 456and/or the second computer and does not appear on any network topology(or management information base or MIB) stored in the second computer.The converse may or may not be true with respect to the second computerbeing discoverable by the first computer; that is, a network topology(or MIB) of a component in the network controlled by the first computer,including the first computer itself, may describe or include informationregarding one or more components of the network controlled by the secondcomputer or the second computer itself. Stated another way, theinfotainment network (or the distributed processing network containingany component (such as one or more of the IP router 420, IP module 1048,communications module 1052, device discovery daemon 1020, mediacontroller 492, media processor 808, access point 456, match engine 812,video controller 840, audio controller 844, speech synthesis module 820,network transceiver 824, signal processing module 828, deviceinteraction module 818, and combo controller 460) participating in,providing, or handling infotainment content) can be prohibited fromcommunicating with a vehicle non-infotainment control network containingany component participating in, providing, or handling signaling forcontrolling non-infotainment vehicle control tasks, functions, oroperations, such as critical tasks, functions or operations (such as oneor more of the vehicle control module 826, location module 896,automobile controller 8104, vehicle systems transceiver 8108, trafficcontroller 8112, network traffic transceiver 8116, and environmentalcontrol module 830). The first computer can have no contactable address(such as a local IP address or global unicast address) on any wirelessor non-wireless network, including the infotainment network, and is notaddressable, contactable, or otherwise able to communicate with thesecond computer, a component in the network controlled by the secondcomputer, or any portable computational device (such as the device oruser interface 212, 248, user interface (s)/input interface(s) 324and/or I/O module 312).

Critical tasks, functions or operations can include one or more of(depending on the particular vehicle) monitoring, controlling, and/oroperating the ECU, TCU, door settings, window settings, and/or blindspot monitor, monitoring, controlling, and/or operating the safetyequipment (e.g., airbag deployment control unit, collision sensor,nearby object sensing system, seat belt control unit, sensors forsetting the seat belt, etc.), monitoring and/or controlling certaincritical sensors such as the power source controller and energy outputsensor, engine temperature, oil pressure sensing, hydraulic pressuresensors, sensors for headlight and other lights (e.g., emergency light,brake light, parking light, fog light, interior or passenger compartmentlight, and/or tail light state (on or off)), vehicle control systemsensors, and/or steering/torque sensor, controlling the operation of theengine (e.g., ignition), head light control unit, power steering,display panel, switch state control unit, power control unit, and/orbrake control unit, and/or issuing alerts to a user and/or remotemonitoring entity of potential problems with a vehicle operation.

Less critical tasks, functions or operations to vehicle operation (whichare unrelated to infotainment) can, depending on the application,further include one or more of (depending on the particular vehicle)monitoring, controlling, and/or operating a wireless network sensor(e.g., Wi-Fi and/or Bluetooth sensor), cellular data sensor, emissionscontrol, seating system controller and sensor, monitoring certainnon-critical sensors such as ambient (outdoor) weather readings (e.g.,temperature, precipitation, wind speed, and the like), odometer readingsensor, trip mileage reading sensor, road condition sensors (e.g., wet,icy, etc.), radar transmitter/receiver output, brake wear sensor, oxygensensor, ambient lighting sensor, vision system sensor, ranging sensor,parking sensor, heating, venting, and air conditioning (HVAC) system andsensor, water sensor, air-fuel ratio meter, hall effect sensor,microphone, radio frequency (RF) sensor, and/or infrared (IR) sensor.

Infotainment tasks, functions, or operations can include one or more ofmonitoring, controlling, and/or operating a wireless network sensor(e.g., Wi-Fi and/or Bluetooth sensor), cellular data sensor, emissionscontrol, entertainment system, receiving, processing, and/or providingmedia and/or multimedia content. Infotainment tasks, functions, oroperations are typically performed by one or more of the IP router 420,IP module 1048, communications module 1052, device discovery daemon1020, media controller 492, media processor 808, access point 456, matchengine 812, video controller 840, audio controller 844, speech synthesismodule 820, network transceiver 824, signal processing module 828,device interaction module 818, desktop manager 1012, windows manager1032, application manager 1036, panel launcher 1040, desktop plugin1024, and combo controller 460.

Another approach is depicted in FIG. 23, which shows a common computer2300 having a microprocessor 2320 executing first and second virtualmachines 2308 and 2312. In common memory 2304, each of the first andsecond virtual machines is an isolated software container with its ownoperating system 1004 and executing one or more applications. By way ofexample and with reference to the first and second computers discussedabove, the first virtual machine can simulate the first computer whilethe second virtual machine can simulate the second computer.Applications stored in each virtual machine would be those applicationsresponsible for critical tasks, functions, and operations in the firstvirtual machine 2308 and non-critical tasks, functions, and operationsin the second virtual machine 2312. Alternatively, the applicationsstored in the first virtual machine 2308 can be those controllingvehicle tasks, functions, and operations while those stored in thesecond virtual machine 2312 can be those controlling infotainment tasks,functions, and operations. For example, the first virtual machine 2308can include one or more of vehicle control module 826, location module896, automobile controller 8104, vehicle systems transceiver 8108,traffic controller 8112, network traffic transceiver 8116, andenvironmental control module 830 while the second virtual machine 2312can include one or more of the IP module 1048, communications module1052, device discovery daemon 1020, media controller 492, mediaprocessor 808, access point 456, match engine 812, video controller 840,audio controller 844, speech synthesis module 820, network transceiver824, signal processing module 828, device interaction module 818, andcombo controller 460. Because each of the first and second virtualmachines is completely separate and independent, multiple virtualmachines can run simultaneously on a common computer. A hypervisormodule 2316 decouples the first and second virtual machines 2308 and2312 from the host and dynamically allocates computing resources to eachof the first and second virtual machine as needed. Computing resourcesincludes, for example, interrupt requests, input/output memorylocations, direct memory access, memory capacity allocated for eachoperating system, scheduling of central processing units, and the like.

Yet another approach is shown in FIG. 24. As illustrated in FIG. 24, acommon computer 2400 includes first and second operating systems 1004 aand 1004 b stored in common memory 2412. Each of the first and secondoperating systems 1004 a and 1004 b executing by the microprocessor2320, can have one or more of a libraries layer 2408, applicationframework layer 2416, and application layer 2420. Applications areexecuted in application layer supported by application framework layerof the respective operating system. For example in the case ofinfotainment, the application framework layer may include a windowmanager, activity manager, package manager, resource manager, telephonymanager, gesture controller, and/or other managers and services. Eachoperating system can rely on a common kernel 1028 for process isolation,memory management, and threading support. Libraries layer includes userlibraries that implement common functions with input/output and stringmanipulation, graphics libraries, database libraries, communicationlibraries, and/or other libraries.

By way of example and with reference to the prior paragraph, the firstoperating system and environment can simulate the first computer whilethe second operating system and environment can simulate the secondcomputer. Applications executing in each operating system andenvironment would be those applications responsible for critical andnon-critical tasks, functions, and operations. More specifically, theapplications stored in the application framework layer of the firstoperating system 1004 a can be those controlling vehicle tasks,functions, and operations while those stored in the second operatingsystem 1004 b can be those controlling infotainment tasks, functions,and operations. For example, the first operating system 1004 a caninclude one or more of vehicle control module 826, location module 896,automobile controller 8104, vehicle systems transceiver 8108, trafficcontroller 8112, network traffic transceiver 8116, and environmentalcontrol module 830 while the second operating system 1004 b can includeone or more of the IP module 1048, communications module 1052, devicediscovery daemon 1020, media controller 492, media processor 808, accesspoint 456, match engine 812, video controller 840, audio controller 844,speech synthesis module 820, network transceiver 824, signal processingmodule 828, device interaction module 818, and combo controller 460.

The first operating system 1004 a can run in a separate executionenvironment from the second operating system 1004 b. For example, oneoperating system (typically the first operating system 1004 a) can runin a root execution environment while the other operating system(typically the first operating system 1004 b) runs in a secondaryexecution environment established under the root execution environment.Processes and applications running on the second operating system, forinstance, can access user libraries, manager(s), and service(s) in thesecondary execution environment. Generally applications for oneoperating system do not run on the other operating system.

The kernel 1028 is shared such that the first and second operatingsystems run concurrently and independently on the shared kernel 1028.Specifically, both operating systems 1004 a,b interface to the sharedkernel 1028 through the same kernel interface, such as by making systemcalls to the shared kernel 1028. The shared kernel 1028 manages taskscheduling for processes of both operating systems and resourcemanagement, such as CPU scheduling, memory access and input/output.

Other techniques exist for running multiple operating systems, includingdual-boot, multiple operating systems loaded on a computing deviceone-at-a-time, hosted virtual machines, and operating system levelvirtualization.

FIG. 25 depicts an operation of the hypervisor module 2316 or commonkernel 1028 (collectively “computer control module”).

In step 2500, the computer control module detects a stimulus, such as apotential security breach, attack, or other intrusion or attemptedintrusion notification, a clock signal, an interrupt and the like.Examples of breaches, attacks, and other intrusions includedenial-of-service attacks, spoofing, man in the middle, ARP spoofing,smurf attack, buffer overflow, heap overflow, format string attack, SQLinjection, and cyber attack.

In step 2504, the computer control module collects metrics regardingoperations of the first and/or second operating system (e.g., of firstor second virtual machine) and/or of the computer or associatedtherewith (e.g., of the network controlled by the first or secondoperating system). Metrics include network metrics, computational devicemetrics, and the like. Examples of network metrics include measuringlink utilization, number of hops, speed of the path, packet loss,latency, path reliability, path bandwidth, network overhead, maximumtransmission unit or MTU, throughput and the like and of computermetrics include load, transaction times, database access times,available memory, central processing unit (“CPU”) usage, memory usage,and the like.

In decision diamond 2508, the computer control module determines whetheror not the collected metrics indicate a normal or abnormal operatingstate of the computer and/or of the first or second operating systemand/or associated therewith. A normal operating state is deemed to occurwhen the collected metrics are within normal operational ranges. Anabnormal operating state is deemed to occur when one or more of thecollected metrics are outside of normal operational ranges. The rangesare predetermined or preconfigured by the manufacturer. Where somemetrics are normal and others abnormal, the metrics may be ranked orscored, with the cumulative score being the basis for the normal orabnormal operating state determination.

In one application, the computer control module acts differentlydepending on whether the abnormality impacts the first or secondoperating system. When the first operating system responsible forcritical vehicle functions, tasks, or operations is behaving abnormally,the driver can be warned of the potential problem and asked to terminateoperation of the vehicle. Execution of certain critical vehicle tasks,functions or operations can be discontinued in favor of manual controlof the vehicle tasks, functions, or operations. Execution of certaincritical vehicle tasks, functions, or operations can be discontinuedwhile other more critical tasks, functions, or operations continue to beexecuted. For example, steering, brakes, headlights, wipers, and vehicleacceleration can continue to be executed while environmental or climatecontrol operations are discontinued. When the second operating systemresponsible for infotainment functions, tasks, or operations behavesabnormally, the driver can be warned of the potential problem andexecution of the second operating system terminated automatically.

The determination as to whether the first or second operating system isbehaving abnormally can be different. The first operating system canrequire more metrics to be abnormal than the second operating system orvice versa. Because the second operating system is more likely to besubject to an attack from the Internet or a portable device, a lesserdeviation from normal operational ranges can be considered to beabnormal operation of the second operating system compared to thedeviation required for the first operating system to be considered to beoperating abnormally. Stated another way, a lower threshold is requiredto find abnormal operation of the second operating system when comparedto the first operating system.

When the operating state is abnormal, the computer control module, instep 2512, shuts down or disables the second virtual machine, operatingsystem, or computer so that the first virtual machine, operating system,or computer continues to perform critical and/or automotive tasks,functions or operations while shutting down, terminating, ordiscontinuing execution of infotainment tasks, functions, or operations.

When the operating state of a network in communication with the computercontrol module is abnormal as determined by comparison of a networkmetric with one or more threshold values, the second, but not the first,operating system can be shut down, particularly when the secondoperating system (but not the first operating system) is controllingand/or receiving input from the network.

After step 2512 or when the operating state is normal, the computercontrol module, in step 2516, records the metrics and findings andreturns to step 2500.

The above discussion can be applied to a vehicle having separatecomputers running the first and second operating systems, respectively.In other words, the computer controller would monitor the operations ofeach of the first and second computers and a corresponding networkproviding input to each and perform the steps of FIG. 25 with respect toeach of the first and second operating systems in each of the first andsecond computers and their respective networks.

Critical tasks, functions, and operations can be performed by anapplication executing in the first operating system and less criticaltasks, functions, and operations (and infotainment tasks, functions, andoperations) can be performed by an application executing in the secondoperating system. For instance, vehicle controls (e.g., steering,braking, indicating, etc.) can be considered mission critical andperformed in the first operating system environment, whereasenvironmental controls and radio stations and entertainmentpresentations can be considered as non-critical and performed in thesecond operating system environment. Among other things, the criticaltasks, functions, and operations can be performed not only by the firstoperating system but also alternatively by a redundant operating system.The redundant operating system may be configured to run in tandem withthe first operating system performing critical tasks, functions, andoperations and replace, or receive a “hot” handoff from, the firstoperating system in the event of a failure or malfunction of the firstoperating system or an application executing in the first operatingsystem. In a “hot” handoff, the redundant operating system may replacethe mission critical operating system without interruption of operation.Additionally or alternatively, the first operating system may utilizeone or more of error checking communication protocols, securecommunication standards, encrypted communications, high speedcommunications protocols, and the like.

The Vehicle as an Artificially Intelligent Assistant

The vehicle control system 204 can act as an artificially intelligentassistant that, based on an awareness of a selected vehicle occupant'spersona (e.g., his or her physical, psychological, mental and othercharacteristics, needs, desires, behavior, personality, goals, habits,biometric information, likes or interests, dislikes, preferences, andthe like) and/or the persona of family and friends of the selectedvehicle occupant, proactively (without a preceding request of theselected vehicle occupant) provides feedback, suggestions, reminders,recommendations, and/or other types of assistance to the selectedvehicle occupant. For example, the vehicle control system 204 cancharacterize, define, and/or analyze a person's persona based on profiledata 252 of the person, device data 220 associated with the person,stored data 232, system data 208, and information related to the personas collected by vehicle interior and exterior sensors. In other words, avehicle occupant's persona can include the information in one or more ofthe profile data 252 of the person, device data 220 associated with theperson, stored data 232, system data 208, and information related to theperson as collected by vehicle interior and exterior sensors. Based onthe persona of selected persona and vehicle-related information (such asvehicle context, state, external surroundings, location, past, current,and/or intended path of travel, waypoints, and destination of thevehicle) can proactively provide suggestions, reminders, recommendationsand/or other types of assistance to the selected vehicle occupant.

The persona can include a user selected and/or configured avatar, whichis provided to the user via any graphical user interface by which thevehicle control system provides suggestions, reminders, recommendationsand/or other types of assistance to the selected user as a vehicleoccupant. As will be appreciated, an “avatar” is the graphical and/orvoice representation of an object that can be the user or the user'salter ego or character or of a person selected by the user. It may takeeither a three-dimensional form, as in games or virtual worlds, or atwo-dimensional form as an icon in Internet forums and other onlinecommunities. It can have not only a visual image but also distinctvoice, mannerisms, and/or other behavior. It is commonly an objectselected and/or configured by the user. Avatars can be used as virtualembodiments of embodied agents, which are driven more or less byartificial intelligence rather than real people.

Each occupant of a vehicle can have a differently configured and/orappearing avatar at his or her display interacting with him or her. Asset forth below, the avatar may accompany the user fromvehicle-to-vehicle as part of the user's persona, which can be sharedfrom vehicle to vehicle.

For example, the vehicle control system, based on an awareness of aselected person's persona and the vehicle-related information, can notevehicle related alarms, bring to a selected person's attention instantmessages, emails, voice mails from, missed phone calls from, currentactivities of and/or locations of friends, and points of interest nearthe vehicle or its path of travel.

In a further illustration, the vehicle control system notes that avehicle driver's anniversary is next week, that the driver's spouse haspinned a bracelet that she likes, that the bracelet is on sale at aspecific store, and that the driver has an appointment near the storeand, in response, alerts the driver to the sale and spousal interest inthe bracelet and asks the driver, via any one of the user interfaces212, 248, input/output module 312, and user interface/input interfaces324, whether the vehicle control system can (i) add a stop to thedriver's calendar and/or waypoint for the store to the driver's path oftravel and/or (ii) make the purchase of the bracelet online for thedriver.

In yet a further illustration, the vehicle control system notes that avehicle warning has been triggered, such as an actual or potentialengine or other vehicle malfunction (e.g., low battery charge voltage,low oil pressure, high engine pressure, low fuel level, low tirepressure, air bag initiator malfunction, etc.), identifies vehicleservice facilities in proximity to the current vehicle position or pathof travel that is capable of repairing or addressing the source of thewarning (e.g., a service garage, fuel station, dealership, etc.),contacts the facility to provide details on the malfunction to determineservice cost, determine possible appointment times, notifies the driverof the possible appointment times, service cost, and correspondingfacility location, and, at the option of the driver, schedules anappointment at the facility and adds a stop to the driver's calendarand/or waypoint for the facility to the driver's path of travel.

In yet a further illustration, the vehicle control system notes that afriend or family member of a vehicle occupant is in spatial proximity tothe current vehicle position or path of travel, notifies the vehicleoccupant of the identity and current location of the friend or familymember, and, at the option of the occupant, contacts the friend orfamily member to notify them of the vehicle occupant's current positionand arrange a meeting at a specified location nearby the current vehiclelocation or path of travel and adds a stop to the driver's calendarand/or waypoint for the meeting location to the driver's path of travel.This is particularly useful where the friend of family member is mobiletoo, such as in a vehicle or on a bike.

In yet a further illustration, the vehicle control system notes that thevehicle is on a long distance trip (based on the driver's or otheroccupant's electronic calendar and/or current location relative to thedriver's or other occupant's home location), identifies hotels or motelsin proximity to the current vehicle position or path of travel, contactsthe hotel or motel to determine possible room types (e.g., one or twobeds, bed size, etc.), cost, and availabilities, notifies the driver ofthe accommodations available and cost, and, at the option of the driver,books an accommodation at a selected hotel or motel and adds a stop tothe driver's calendar and/or waypoint for the hotel or motel to thedriver's path of travel.

In yet a further illustration, the vehicle control system notes that thevehicle is on a long distance trip, identifies a point or location ofinterest based on a persona of a vehicle occupant in proximity to thecurrent vehicle position or path of travel, collects and providesinformation about the point or location of interest to the vehicleoccupant, optionally contacts the point or location of interest todetermine business hours and costs to visit the point or location ofinterest, notifies the occupant of the business hours and cost, and, atthe option of the driver, books an accommodation at the point orlocation of interest and adds a stop to the occupant's calendar and/orwaypoint for the point or location of interest to the driver's path oftravel. The point or location of interest can be a historical landmark,museum, library, church, store, restaurant, coffee shop, mall,healthcare facility, and the like.

In yet a further illustration, the vehicle control system notes, fromthe electronic calendar of the driver and/or historic driver behavior,that the destination of the vehicle is a meeting, place of employment,or other point of interest and the location thereof, determines that thepath of travel of the vehicle will not arrive at the destination timelysuch as due to traffic, road construction, or other delays, determines adifferent route that will arrive timely at the destination, proposes thealternate route to the driver, and, at the driver's option, changes theon board navigation to redirect the driver along the alternate route.The vehicle control system can also send a message, such as an email orinstant message, to one or more meeting participants or his or her placeof employment to let them know that he or she will or may be late.

In a further illustration, an interior or exterior vehicle sensor 340senses a condition or activity, such as of a vehicle passenger (e.g., achild passenger unbuckling a seat belt, children fighting in the backseat, an in appropriate gesture of a vehicle occupant, and the like) andnotifies a selected vehicle occupant, such as the driver of thecondition or activity.

In a further illustration, a vehicle control system based on informationreceived from a sensor, such as a camera sensor 760, can identify and/ordistinguish an occupant's actions, clothing, held objects or objects inthe possession of the user, and the like and perform an action. Forinstance, the vehicle control system can direct the occupant to acurrent sale of an identified object worn by or in the possession of theoccupant that is in spatial proximity to the current vehicle location.Information regarding objects associated with the user can also beidentified by radio frequency identification readers and tags, barcodereaders, quick response code readers and the like.

In a further illustration, the vehicle control system determines thatthe occupant is driving the vehicle to a specific store and provides analternate store site based on a busyness of one or more store locations.Parking information (e.g., how many spaces are occupied or free based onparking sensors, metered parking information, etc.) may be used to helpdetermine an optimal store or destination location. A user, forinstance, may be driving down a street and pull into a Starbucks™parking lot at where the user and five other vehicles cannot find aparking spot. In this case, the user may spend five minutes waiting forthe five other vehicles to clear the lot so the user can travel toanother location. However, the vehicle control system, knowing that theparking lot associated with that particular Starbucks™ was fullyoccupied, may cause the vehicle to alter the route (or suggest analternate route) to go to another Starbucks™ location based on thetraffic and/or lack of parking.

In a further illustration, the vehicle control system may use imagesensors to translate signs (e.g., road signs, store signs,advertisements, billboards, etc.). The translation process may beprovided via the processing power of the mobile device, via processingon the cloud, combinations thereof, etc., and provide the translatedsignage message to the occupant.

In a further illustration, the vehicle control system may present atranslated availability and/or assistance to guide a user in findingproducts traditionally purchased on trips. This guidance may be basedupon the past behavior associated with the user persona. For instance,when a user travels to a new place the user may always (or mostly) shopfor toothpaste, water, and ibuprofen. As can be appreciated, someforeign countries may not offer all of the products at a single store,like North American supermarkets. Continuing this example, the vehiclemay provide a translation for the purchasing behavior by at leastproviding one or more shopping outlets where a user can procuretoothpaste, water, and ibuprofen. In this example, the vehicle controlsystem may state in the user's own language “You can find toothpaste andibuprofen at the Apotheke on Dipplestrasse in downtown Munich. For wateryou may wish to visit the Marktkauf on Maybach Gaenge two blocks southof Dipplestrasse.”

In a further illustration, the user may query for translation and visualassistance, such as “What does Aspirin look like in Germany”. Inresponse, the system may provide a picture or image and a translationtext, voice, etc. via the mobile device and/or the vehicle.

In a further illustration, the vehicle control system and/or the mobiledevice, based on vehicle location and/or path of travel, may presenttravel and tourism options based on popular sites and/or destinationsand, if selected, add the selected option as a waypoint or destination.For instance, the vehicle control system may provide the popular sitesand/or destinations with a message, such as “75% of travelers visit thefollowing destinations.” The vehicle control system may develop a“perfect itinerary” based on the destinations desired and the timeframe.In some cases the itinerary may be based on desired locations and/orlocations to be avoided. For instance a user may not wish to visit anindustrial neighborhood, and as such the itinerary may provide routesthat avoid industrialization.

In a further illustration, the vehicle control system can use a vehiclelocation-based trigger to activate and/or deactivate features and/orsettings at a waypoint or destination, such as a home, a garage, and thelike. For instance, the user may be returning home from work (thisdetermination may be predicted based on prior trips made at the same orsimilar time of day by the same user), at a certain distance from thehome, the vehicle may send a signal to a home automation system to setappropriate levels of lighting, thermostat, and/or initiate/deactivateother devices and/or open a garage door or entrance gate. A user may betraveling home from work and the vehicle control system may send amessage, such as a text message, phone call, email, etc. to a thirdparty to indicate the user is coming home. In some cases, the messagemay be identified as being sent from the vehicle (e.g., a vehicle iconwith the message). The third party may respond to the message, which isthen relayed, visually and or audibly, to the user via the components ofthe vehicle (e.g., dashboard, head unit, speakers, combinations thereof,etc.). By way of example, a third party may state “Please pick up someeggs and fabric softener before you come home, thanks.”

In a further illustration, the vehicle control system can learn whichroutes one or more users travels at any given time period (hours, days,weeks, months, etc.). This information may be used to adjust routesbased on traffic, weather, mood, etc. For instance, a user may plan totravel (or is traveling) to work on a Monday morning where heavy trafficis detected ahead in the user's “usual” Monday morning route. Upondetecting the traffic along the usual route, the vehicle may present theuser with alternate route selections, or automatically adjust a routepresented to the user. Routes may be altered by the vehicle controlsystem based on past purchases, patterns, preferences and the likeassociated with a user profile. For instance, if a user visits McDonaldsevery morning for a cup of coffee and an egg McMuffin, the routeguidance may alter the route of the individual to pass along severalMcDonalds. The route alteration may be terminated once the user stops topurchase products at the McDonalds. As can be appreciated, businessesmay pay for route alteration and suggestion as a form of advertising.

In a further illustration, the vehicle control system centers aroundinteractions and learns from user preferences. For instance, the vehiclecontrol system learns that the user tends to like it warmer in themorning than in the afternoon, and adjust temperature settings in thevehicle accordingly. Further, since there are cameras and facialrecognition, it can know my preferences and put them in, no matter whatseat the user is in. IN another instance, the user has been surfing theInternet looking for new bikes, and the vehicle control system informsthe user that there is a bike shop around the corner and adds the bikeshop as a waypoint or destination.

In a further illustration, the vehicle control system synchronizes withan electronic calendar of the user to create (i) smarter alarms and (ii)updates. Smart alarms mean that instead of a standard 15 minute warningbefore a meeting, if it is an offsite meeting with an address entered,the system can determine how much time it will take based upon traffic,previous driving habits, the amount of time it generally takes to exitthe office and get to the car, etc., and change the warning accordingly.The updates can be triggered based upon the time of arrivaldetermination from the GPS or as calculated above and send SMS noticesto other attendees or prompt to call the meeting leader. Similarly, ifthe car determines the user is stopping into Starbucks, it couldremotely ask the other meeting attendees if they want anything.

In a further illustration, The vehicle control system knows a child'scurfew and also the distance from home. Given that information, it couldinform the child driver that he or she must leave to make it home intime to avoid a curfew violation. Further, since it knows the occupants,it could potentially include time to deliver them home too.

In a further illustration, the user is training for a marathon. He has awearable device attached to his clothing that uses his biometric data(e.g., heart rate, body temperature, energy levels, sleeping habits,etc.) throughout the day. It also has a GPS that tracks location andterrain and an MP3 player. On his way to work, the wearable device hassynchronized with the vehicle control system. The user verbally checksoff his breakfast from his marathon widget on the home page displayed onthe on board console and confirms his goals to be realized that day aswell as his calendar appointments. On his way to a meeting later thatday, the vehicle control system notes that it is near lunch time,reviews the restaurants in spatial proximity to the vehicle, determineswhich restaurants have menu items consistent with the user's dietarygoals that day, and recommends a nearby restaurant. The user accepts therecommendation, and the vehicle control system books an advancedreservation and adds the restaurant as a waypoint. On his way back tothe office, the vehicle control system notes that the user's heart rateis too low, notifies the user, and, upon the user's confirmation,adjusts the oxygen levels in the vehicle, seat and lumbar settings, andtemperature levels to inhibit drowsiness.

In a further illustration, a user and his child enter the vehicle whilethe child is watching programming (such as a movie on Netflix™) on atablet computer. The vehicle control system recognizes the user,determines his role in the car or seating position (driver), and appliesthe user's personal settings. The user's phone is automatically pairedwith the multimedia controller via the local or on board wireless accesspoint. The vehicle control system determines that the child is in theback seat and recognizes his identity. The vehicle control system asksthe user if the programming is to be continued to be provided to thechild on the child's rear seat display subsystem. After dropping thechild off at school, the vehicle control system determines, based on theuser's electronic calendar, that the user is behind schedule for a nextappointment due to an accident on the current path of travel, recommendsan alternate path of travel and sends a message to the meetingparticipants that the user will be late and providing an estimatedarrival time and reason for the late arrival. The message may beautomatically generated or dictated by the user via the vehicleinfotainment system. After work is over, the user drives home during abaseball game. The persona of the user informs the vehicle controlsystem that the user is a baseball fan and recommends to the user thathe tune into the game on radio. At the user's request, the infotainmentsystem tunes automatically into the game broadcast on the radio.

The occupant persona is not limited to information obtained and storeddirectly by the vehicle. It can include information obtained by thevehicle from other sources, such as from a server 228 over acommunication network 228 such as the Internet and IP router 420. Anexample would be from a social network profile or page of a selectedvehicle occupant, a web or home page of the selected vehicle occupant, atelecommunications presence server associated with the selected vehicleoccupant, and the like. Another example would be from another vehicledriven or occupied by the selected vehicle occupant. Another examplewould be from a home computer network of the selected vehicle occupant.In the latter examples, the information can be obtained not only via theInternet but also directly via synchronization when the vehicles areparked in a common garage of the occupant's home even when the ignitionof the vehicle(s) is/are turned off. Another example would be from aportable communication or computational device of an occupant, such asfrom a device or user interface 212, 248. As noted, a transceiver of thevehicle can provide a mobile hot spot functionality not only to any userdevice(s) therein but also to a computer of another vehicle located inproximity to the selected vehicle. Synchronization with anothervehicle's computer or with a home computer can be done, for example, bythe http server capabilities of the vehicles.

The persona can be stored as part of a template locally, remotely, orcombinations thereof. The persona can be stored in the cloud, on apersonal communication device (such as a phone or tablet computer), in amemory of the vehicle, on a local storage memory, key fob, and the like.It may be encrypted and accessed and/or modified by the user viaauthorization through a verification system, which may rely oncredentials and/or biometric information. The template may beuniversally applied by all vehicle manufacturers to enable the personato be portable among vehicles so that the intelligent capability of thevehicle appears to follow the associated user from vehicle to vehicleeven when manufactured by different companies. The template can evenfollow the user from seat position to seat position within a vehicle,automatically populating vehicle settings, such as seat and consolesettings and features associated with a new seating position, when theuser is identified as having moved to the new seat.

A console may not support multimedia entertainment, particularly video.Multimedia content is typically displayed on remote display subsystemsdedicated to a specific seating position.

By way of illustration, user personas may be presented (or uploaded) toa vehicle in advance of a user reaching a vehicle (rental cars, etc.).For example, Hertz® car rental agency can maintain a persona for eachcustomer and upload the persona onto the car rented to the customer atthe time the leasing is consummated. While the user is walking from therental desk to the car, the car is automatically adjusting all of thevehicle settings as set forth in the user persona. In this way, the userneed not manually select any settings when he or she begins driving thecar.

By way of further illustration, as part of a travel package, a rentalcar system may determine where a user is staying (e.g., hotel, motel,building, etc.), a mobile device number associated with the user, andthe like. The system may send a text message, email, phone call, orother signal to the mobile device number to request access to the user'spersona template. The template can be incorporated with the vehicle andsettings associated with the vehicle may be updated prior to the userreaching the vehicle. Using this method, administrative assistants canreserve a vehicle on behalf of another individual and link the usertemplate to the reservation based on the user's mobile device phonenumber. The mobile device can act as the key. For instance, a phonenumber may be embedded in the private key of the mobile device. Thepublic key may be presented to the rental car. In some cases acombination of phone number and device ID (e.g., EIN, MAC address, etc.)may be used as part of the authentication.

The vehicle control system can apply rule sets or templates to triggernotifications and other actions of the vehicle control system and/ordisplay artificial or computational intelligence based on observing thebehavior of a selected person over time. In any of the embodimentsdisclosed herein, the vehicle control system and/or mobile device maydetermine patterns, such as, destinations, purchases, etc. to categorizedata, advertising, and the like. The artificial or computationalintelligence can, for example, have symbolic, sub-symbolic, or hybridcomponents and/or modules. Examples include neural networks (e.g.,acyclic or feedforward neural networks and recurrent neural networks),fuzzy systems, and evolutionary computation.

An example of a home page 3000 displayed by a device or user interface212, 248, user interface (s)/input interface(s) 324 and/or I/O module312 is shown in FIG. 30. The layout of the home page 3000 is defined bythe user profile. When the user is signed as a guest user, a defaultlayout is provided. The various objects in the layout can be configuredas widgets or a lightweight version of an application or item offunctionality.

The home page 3000 includes, in an upper area 3004 of the screen, userselectable icons for various applications (which if selected open orinitiate or recall the application), such as navigation (“Nav” icon)3016, media (“Media” icon) 3018, phone (“Phone” icon) 3020, rear view(to provide the driver with a video stream from a backup camera) (“RearView” icon) 3022, other applications 3024, and “my dash” (to provide theuser with a display having typical dash indicators, such as speedometer,tacometer, oil pressure, warning lights, battery charge indicator, fuellevel, and the like) 3026; an upper information bar 3028 including agreeting to the identified driver 3030, satellite reception indicator3032, WiFi connectivity indicator 3034, cellular connectivity indicator3036, weather information 3038, and date 3040; in a central area 3008 ofthe screen, various types of information, such as navigation inputfields 3042 (e.g., “set destination” field (which is a drop target intowhich location-enabled objects can be dragged and dropped) to provideguidance from the user's current user inputted or satellite-basedlocation to the inputted destination), “set waypoints” field 3044((which is a drop target field into which any location-enabled objectcan be dragged and dropped) to set an ordering of waypoints along aselected or inputted route), suggested locations 3046 (based on upcomingevents in the electronic calendar of the user and/or based on the user'spreferences, likes, schedule, and observed habits and other personainformation) (and therefore have location information, such as addressinformation, inputted into the calendar entry and/or satellite-basedcoordinates based on prior driving history)) to be dragged and droppedinto the “set destination” and/or “set waypoints” field, favoritelocations 3048 (which is a list of user-defined favorite locations andwhich can also be dragged and dropped into the “set destination” and/or“set waypoints” field (and therefore have corresponding locationinformation, such as satellite-based geographic coordinates or addressesentered in field(s) associated with the respective favorite locations (ahome or work address is an example of a user selected favoritelocation))), recent locations 3050 (which refer to locations visitedwithin a user-defined time interval of the present time and/or at leasta predetermined number of times over a user-defined time interval andwhich can also be dragged and dropped into the “set destination” and/or“set waypoints” field (and therefore have corresponding locationinformation, such as satellite-based geographic coordinates or addressesentered in field(s) associated with the respective recent locations)),“people” 3052 (which can be the contacts of the user or other list offriends and which provide names, contact information, and addresses forpeople having a corresponding contact profile, which profile can also bedragged and dropped into either the “set destination” or “set waypoints”field), points of interest 3054 (which are points of interest orpotential interest to the operator such as food serving locations, fuelstations, lodging facilities, parking, attractions, health carefacilities, historical landmarks, and the like and which can also bedragged and dropped into either the set destination or set waypointsfield (and therefore have corresponding location information, such assatellite-based geographic coordinates or addresses entered in field(s)associated with the corresponding point of interest)), display ofcalendar appointments for a selected day 3056, weather information for aselected day (e.g., temperatures, precipitation, wind speed anddirection, atmospheric condition (e.g., sunny, partially sunny, cloudy,partly cloudy, etc.), 3058 and received and/or sent messages (e.g.,emails, voice mails, and/or texts) 3068 from friends (which dropdownmenu can include family, business contacts, and other user definedcategory of contacts); and in a lower area 3012 of the screen, a climatecontrol icon (“Climate” icon) for a climate control application 3060,controls icon (“Control” icon) to control vehicle tasks, functions oroperations 3062, and speaker volume settings (shown by the speaker andtriangle images) 3064 and controls to the left and right of the speakerimage 3066 and 3070.

When a suggested, favorite, recent location, people, or points ofinterest object or object identifier is dragged and dropped by a sensedgesture or stylus or mouse into the “set destination” or “set waypoint”fields, the navigation subsystem 336, based on the currentsatellite-based location of the vehicle, automatically determines aroute from the vehicle's current location to the stored locationassociated with the dragged and dropped object. As more objects aredragged and dropped into either the “set destination” or “set waypoint”fields, the route is altered to accommodate the various associatedlocations. A traceroute on a map and/or directions can be provided tothe vehicle operator. The traceroute or directions can be updated toshow the vehicle's current location. The traceroute or directions can bealtered to reflect traffic and/or road conditions (when the user selects“quickest” route), surface street or highway preferences, roadsideaesthetics (when the user selects “most scenic” route), and the like.This information can be displayed by the user selection of the “Nav”icon 3016.

The screen can provide a map on the background to assist navigationconfiguration. As the user configures the “set destination” and “setwaypoint” fields, the traceroute can be updated on the background map.In other words, the various location-enabled objects and the “setdestination” and “set waypoint” fields are overlays of the map.

As noted, the screen configuration and content, such as the arrangementof the various icons and displayed information, can be rearranged orreconfigured by the user to reflect his or her needs or desires.

Because the screen content is complex and/or content-heavy and candistract the operator when driving, the screen may be altered when thevehicle is in a driving mode relative to a parked mode. In a drivingmode, the wheels are in motion and the gear shift is out of the “parked”position. In the parked mode, the wheels are not in motion and the gearshift is in the “parked” position. The home screen of FIG. 30 thereforecan be closed automatically on the driver's console display and disabledwhen the vehicle is in the driving mode and opened automatically andenabled when the vehicle is in the parked mode.

Certain applications can be launched automatically when the vehicle isin the driving mode. An example would be the navigation application sothat the console display shows the display for the navigationapplication instead of the home screen of FIG. 30. One or more otherapplications can be selected by the user as the display in driving mode.

Alternatively or additionally, when the vehicle is placed in reversegear with the home screen active, the rear-view application can belaunched automatically to display, in the rear view application display,live video from one or more rear cameras on the back of the vehicle.When the vehicle is placed in forward gear, the rear view applicationcan be automatically closed to terminate the rear view applicationdisplay and the navigation application automatically opened to providethe navigation display.

The operation of the profile identification module 848 will be discussedwith reference to FIG. 36.

In step 3600, the, the profile identification module 848 detects astimulus, such as the vehicle changing operational state, expiration ofa selected time period, a door opening or closing, and the like.

In step 3604, the profile identification module 848 selects a currentvehicle occupant, which can be the driver or a passenger.

In step 3608, the profile identification module 848 determines a seatingposition of the selected vehicle occupant; that is, the module 848determines which of the driver's seat, front passenger seat, driver'sside rear passenger seat, middle rear passenger seat, and passenger'sside rear passenger seat the selected vehicle occupant is occupying.This can be done by the user identification module 822.

In step 3612, the profile identification module 848 determines the typesof information to collect for the persona of the selected occupant. Thetype of information to be collected can vary by occupant identity, ageof occupant, an association of the occupant with the vehicle, and/oroccupant seating position. For example, the driving history during therecent vehicle use may be collected for a driver but not a passenger.The driving history during the recent vehicle use may be collected foran adult passenger but not for a child passenger. The driving historyduring the recent vehicle use may be collected for a vehicle owner butnot for a guest driver or driver having a default profile.

In step 3616, the profile identification module 848 collects theselected types of information.

In step 3620, the profile identification module 848 determines whetherthere is a next occupant to be selected. If so, the profileidentification module 848 returns to step 3604. If not, the profileidentification module 848 returns to step 3600 and awaits the nextstimulus instance.

An operation of the vehicle control system 204 will be discussed withreference to FIGS. 37A-B.

In step 3700, the vehicle control system 204 detects a stimulus, such asthe vehicle changing operational state, expiration of a selected timeperiod, a door opening or closing, and the like.

In step 3704, the vehicle control system 204 selects a current vehicleoccupant.

In step 3708, the vehicle control system 204 determines a seatingposition of the selected occupant.

In step 3712, the profile identification module 848 accesses, at therequest of the vehicle control system 204, the persona of the selectedoccupant.

In step 3716, the vehicle control system 204 determines vehicle relatedinformation. This information includes typically any informationcollected by an interior or exterior vehicle sensor 104, 242, includinga satellite navigation system, such as GPS 488.

In step 3720, the vehicle control system 204 determines other relevanttypes of information, such as the information referenced above in theexamples and illustrations. The other relevant types of information caninclude, for instance, a persona of a selected person not currently inthe vehicle, an instant message, email, voice mail from, missed phonecall from, current activity of and/or current location of a friendand/or family member of the selected vehicle occupant, a location, hoursof operation, and/or descriptive information about a point and/orlocation of interest near the vehicle and/or its path of travel, alocation, hours of operation, and/or descriptive information about avehicle service facility near the vehicle and/or its path of travel, alocation, hours of operation, and descriptive information about a hoteland/or motel near the vehicle and/or its path of travel, a currentlocation of the friend or family member near the vehicle and/or its pathof travel, a road condition such as traffic, road construction, or otherdelay near the vehicle and/or its path of travel, and the like. Thisinformation can be collected from the server 228 via the communicationnetwork 224.

In decision diamond 3724, the vehicle control system 204 determineswhether or not to perform an action. This determination can be based ona rule-based or template-based analysis of the persona of the selectedoccupant, vehicle related information, and other relevant types ofinformation. The particular rules selected to apply to the collectedinformation to determine whether or not to perform an action and whataction to perform can depend on the identification of the selectedvehicle occupant and/or seating position of the selected vehicleoccupant. Actions that can be performed include those referenced above,including making an appointment or reservation, purchasing an item online, adding a waypoint to a path of travel on a navigation system,adding an entry into the selected occupant's calendar, changing adestination or path of travel on a navigation system, warning ornotifying the occupant, and sending a message to a person regarding anarrival time at a waypoint or destination.

When the vehicle control system 204 determines not to perform an action,the vehicle control system 204, in decision diamond 3728, determines ifthere is a next occupant to be selected in the vehicle. If not, thevehicle control system returns to step 3700 and, if so, to step 3704.

When an action is to be performed, the vehicle control system 204 instep 3732 optionally prompts the occupant whether or not the action isto be performed.

When instructed, the action is performed in step 3736.

In step 3740, the profile identification module 848 updates the personaof the selected vehicle occupant to reflect the action performed and thesurrounding context. This can be important for the vehicle controlsystem 204 creating new rules describing the likely behavior of theselected vehicle occupant.

In decision diamond 3728, the vehicle control system 204 determines ifthere is a next occupant to be selected in the vehicle. If not, thevehicle control system returns to step 3700 and, if so, to step 3704.

Operation of the Device Discovery Module 2080

The device discovery daemon 1020 can discover automaticallycomputational devices within the vehicle that connect or attempt toconnect to network 356 or communication subsystem 1008 or thatdisconnect or attempt to disconnect from the network 356 orcommunication subsystem 1008. The device discovery daemon 1020 discoversautomatically computational devices, such as portable user communicationdevices, located within the vehicle and connects, wirelessly, theportable user communication device with the network 356 or communicationsubsystem 1008.

The device discovery daemon 1020 may intercept emitted signals from oneor more devices in or about the vehicle to pair a device with thenetwork 356 or communication subsystem 1008. Rather than requiring anactive pair handshake, the network 356 or communication subsystem 1008may utilize certain receivers to “listen” for cell tower registrationsignals, sent messages, sent packets (packet sniffing), etc. From thisinformation, the device discovery daemon 1020 may isolate a MAC address,or other identifier, associated with a device and register the devicewith the vehicle, a vehicle zone, a user, etc. In some cases, and upondetecting a device signal, the device discovery daemon 1020 may requestpermission from a user before pairing the device. In one example, thepairing may be initiated by the device discovery daemon 1020 (upon afirst registration) to a user's device. Subsequent pairings may beinitiated by a user's device to the network 356 or communicationsubsystem 1008. One or more of Bluetooth, Near Field Communications(NFC), and other protocols may be used to pair a device with the network356 or communication subsystem 1008.

FIG. 20 depicts an operation of the device discovery daemon 1020.

In this operation, the device discovery daemon 1020 detects acomputational device attempting to connect to or otherwise connectablewith the vehicle network 356 or communication subsystem 1008 and,applying rules, determines when it is appropriate to connect with thecomputational device. The computational device may be a module installedon a backplane, a vehicle component and/or module that is attempting tobe installed, a portable user communication device, and the like. Thedaemon can ping the local communication network each time the vehiclestarts or each time a vehicle door opens or closes. The daemon canperform a Bluetooth™ and WiFi™ device discovery too. For eachcommunication device that responds to the ping, the daemon can useplural protocols, such as HPPOPT, ICMP, IGMP, GGP, IP, ST, TCP, EGP,CHAOS, and UDP to populate a device's folder in the device data withdevice capabilities. Device capabilities are determined by the openedport(s) the device exposes.

The device discovery daemon 1020, in conjunction with the combocontroller can determine a spatial location of the computational deviceas a prerequisite to permitting the computational device, even ifproperly authenticated, to connect to the vehicle network 356 orcommunication subsystem 1008. The spatial location can be required to bein an area 508 or set of areas 508 and/or zone or set of zones.Depending on the type of computational device, the computational device,for example, may be required to be in the area two 508B for connectionto be accepted. This can be the case for a portable personalcommunication device, such as a wireless or cellular phone, tabletcomputer, personal digital assistant, laptop, and the like. For othertypes of computational devices, the computational device, for example,may be required to be in area one 508A (such as the engine space) and/orarea N 508 n (such as the trunk). Thus, different types of computationaldevices can have different location requirements as a prerequisite forconnectivity to be enabled or accepted. This can be the case for anengine control module, vehicle sensor, or other device that controls orsenses a vehicle task, function or operation that, for instance, eitherconnects wirelessly or by a wire-line connection, to the red zone 417,green zone 413, or I/O backplane on the network/bus 408.

In step 2000, the device discovery daemon 1020 detects a computationaldevice connectable with the vehicle network 356 or communicationsubsystem 1008. “Connectable” can refer to the computational devicebeing physically within the vehicle, the computational device having athreshold signal strength or connection quality with the vehiclenetwork, the computational device being configured properly to connectwith the vehicle network, and the like. “Connection” can be done eitherwirelessly or by wired connection.

Detection can be done by pinging the computational device and/orreceiving a ping from the computational device. As an example, toconnect to a Wi-Fi LAN a computational device must be equipped with awireless network interface controller. The combination of a computer,such as the computer in the computational device, and interfacecontroller is called a station. All stations share a single radiofrequency communication channel. Transmissions on this channel arereceived by all stations within range. The hardware does not signal theuser that the transmission was delivered and is therefore called abest-effort delivery mechanism. A carrier wave is used to transmit thedata in packets, referred to as “Ethernet frames”. Each station isconstantly tuned in on the radio frequency communication channel to pickup available transmissions.

Device detection can be in response to or triggered by a sensed eventother than receipt of a ping from the computational device. As noted,device detection can be receipt of information from one or more on boardsensors that a new occupant has entered the vehicle. Exemplaryinformation includes a door opening or closing, a successfulauthentication of an occupant or computational device, a sensed load ina seat, detection of movement within the vehicle, and detection ofinitiation of a vehicle task, function or operation, such as a keyinserted in an ignition, engine start up, and the like.

In step 2004 and as noted above, the device discovery daemon 1020accesses computational device accesses configuration and otherinformation and capabilities of the connected computational device. Thisinformation can include device type and/or class, manufacturer name,product and/or device identifier or name, firmware identification,services running, device operating system, network address(es),capabilities, user credentials, and the like. The device discoverydaemon 1020 can determine presence of the computational device on anyinput channel, such as Ethernet, USB, WiFi, Bluetooth, and the like.

In decision diamond 2008, the device discovery daemon 1020 determineswhether or not the computational device is recognized and/orauthenticated properly. Recognition can be based on any of theconfiguration and other information and is deemed to occur when selectedfields of the information map to and are the same as similar fieldspreviously encountered and/or recorded in system data 208 by the devicediscovery daemon 1020. Authentication is deemed to occur when thecredentials match stored credentials for the recognized computationaldevice.

When the computational device is not recognized and/or authenticatedsuccessfully, the device discovery daemon 1020, in decision diamond2012, determines whether the computational device is in a predeterminedarea or zone of the vehicle for the type of computational devicecorresponding to the computational device. As will be appreciated, somewireless protocols, particularly WiFi™, use an access point (or hotspot)having a defined range, which can be commensurate with the area of thevehicle passenger cabin. The passenger cabin can be surrounded by wallsthat substantially block radio waves to prevent computational devicesexternal to the passenger cabin from connecting to the network. Multipleoverlapping access points can be used to cover larger passenger cabins,such as buses, trains, planes and the like. This determination can bebased on received signal strength from the computational device, asatellite-based position of the computational device compared to asatellite-based position of the vehicle or sub-area of the passengercabin, triangulation based on the relative received signal strengths ofmultiple access points, camera feedback or image processing of camera orvideo feed of the passenger compartment, occupant information receivedfrom other sensors such as occupant location or presence informationreceived from an infrared sensor 740, motion sensor 744, weight sensor748, biometric sensor 756, camera sensor 760, audio sensor 764, andassociated device sensor 720, user input and the like. User input can bereceived by a screen pop-up on the computational device requesting theuser to designate whether or not and what vehicle the user is currentlyin and/or what seat position the user has in that vehicle.

A level of confidence can be assigned by the device discovery daemon1020 to the computational device indicating a likelihood or probabilitythat the computational device is located within the passengercompartment. This level of confidence can be based on consideration andanalysis of multiple of the factors identified above. When multiplefactors indicate that the user is within the passenger compartment, ahigher likelihood is assigned to that determination; likewise, whenmultiple factors indicate that the user is outside of the passengercompartment, a lower likelihood is assigned to the determination. Whenno or an unsatisfactory response is received from the user in responseto a request for user input and/or the level of confidence is below aselected threshold, the user is deemed to be located outside of thepredetermined area and/or zone.

A further spatial determination can be made by the device discoverydaemon 1020 based on how the computational device connected to theautomotive network. If the computational device is hard wire connected,or plugged in, to the automotive network (which can be determined byknown techniques), the spatial location of the computational device canbe assumed to be within the vehicle regardless of other locationmechanisms employed by the device discovery module.

A further spatial determination can be made by the device discoverydaemon 1020 based on whether or not the computational device has movedwithin a defined time interval. This indicates that the computationaldevice may not be within the vehicle as movement of a computationaldevice within the vehicle is less likely than a computational devicelocated outside of the vehicle, where the person corresponding to thecomputational device is often moving relative to the position of thevehicle.

A further spatial determination can be made by the device discoverydaemon 1020 based on whether the signal strength or signal-to-noiseratio associated with a ping or other signal from the computationaldevice varies significantly over a selected time interval. Thesignal-to-noise ratio associated with signaling from a computationaldevice located within the vehicle would remain relatively constant whilethe signal-to-noise ratio associated with signaling from a computationaldevice located outside of the vehicle would likely vary significantly asthe person associated with the computational device moves relative tothe vehicle and/or network 356 or communication subsystem 1008.

A further spatial determination can be made by the device discoverydaemon 1020 based on an analysis of signal characteristics. Signalcharacteristics can include one or more of, but is not limited toanalyzing signal attenuation, where a signal with a shrinking strengthor increasing strength may be determined to be moving in relativeproximity or position to the vehicle, analyzing any Doppler shift in thefrequency, which may indicate movement in reference to the vehicleand/or network 356 or communication subsystem 1008, analyzing any kindof delay between receiving the same signal at the various transceivers260 and/or sensors 242A-N. A difference in the time of receipt can beused to triangulate where the location of the signal originated and ifthat location is outside the vehicle or inside the vehicle.

A further spatial determination can be made by the device discoverydaemon 1020 based on an analysis of location information. Beyond thesignal characteristics, the device discovery daemon 1020 may receiveinformation from one or more sensors 242A-N to determine a location ofthe vehicle. If the location of the vehicle is in an area where there isnot a likelihood of signal congestion, for example, in the driveway ofsomeone's home, then all received signals may be determined to have beenwith inside the vehicle. Thus, as signals are received and if thelocation has changed, the device discovery daemon 1020 may determinewhether the current location is an area where there may be more signalsreceived that would be outside the vehicle or whether the signalsreceived has changed.

Analysis of the person sending the signal may also be used by the devicediscovery daemon 1020. Thus, the device discovery daemon 1020 may accesshistorical signal data (which is a record of devices that havepreviously been granted access to the vehicle communications network) todetermine if the signals have been received from this device or fromthis person before. Thus, the signal may identify a person documented inthe signal data, and the device discovery daemon 1020 may determine ifthat person has used or connected with the device discovery daemon 1020previously. Further, the device discovery daemon 1020 can determine ifthere is movement of the vehicle. If a signal remains within the carafter the vehicle moves, then that signal can be determined to be insidethe vehicle. For example, if the signal is received at the beginning ofa route and then at some time thereinafter the signal continues to bereceived, then it is determined that signal may be inside the vehicle.

Further, sensor data may be analyzed by the device discovery daemon1020. Sensor data may include such things as determining if there arepeople and the number of people within a car. Thus, if there are threepeople in the vehicle and three signals are received, all three signalsmay be determined to be inside the vehicle. Further, it may be possiblefor the sensors 242 to determine if a device is currently being usedinside the vehicle. For example, if an optical sensor can view a devicewithin its field of vision and/or if an electromagnetic field sensordetermines that there is EMF radiation emanating from a location in thevehicle, then the device discovery daemon 1020 can determine that thatsignal is originating inside a vehicle.

A further spatial determination can be made based on the type (orservice) of computational device attempting to interact with theautomotive network. If the computational device is not the type (orservice) of device expected to be positioned within the passengercompartment, its attempt to connect to the automotive network can bedisregarded completely. If the computational device is the type (orservice) of device that can be connected to the vehicle network but isnot the type (or service) of device expected to be associated with anoccupant (such as a non-infotainment vehicle task, function, oroperation control module, sensor module, a module plugged into abackplane (such as an XM radio module), or other type of device notpermitted or expected to be associated with an occupant), the spatialdetermination may be deemed to be satisfied by the computational devicebeing located somewhere within the vehicle even if outside of thepassenger compartment. Conversely, if the computational device is thetype (or service) of device that would normally be carried by a vehicleoccupant, the spatial location query would be satisfied only when thecomputational device location were within the passenger compartment.This would prevent an unauthorized computational device, such as a cellphone or tablet computer, from connecting to the automotive networksimply by being held above, beside, or beneath the vehicle. The mappingof type of computational device to permissible location (e.g., areaand/or zone) within the vehicle can be effected in a look up table orother set of rules.

The device discovery daemon 1020 may receive one or more of theseanalyses and resolve the information. Thus, device discovery daemon 1020can cross-correlate information from different analyses to determine ifthe signal is within the vehicle. Different weight may be given todifferent analyzes to make a determination about where the signaloriginates. In this way, a more robust decision is made as to whether ornot the signal originates in the vehicle and should be allowed toconnect to the universal bus or the routing system of the vehicle.

While this logic is described with respect to the location of thecomputational device, it is to be understood that this determination isoptional. Whether or not a communication device is enabled to connect tothe vehicle network 356 or communication subsystem 1008 can be basedsolely on successful authentication. In this way, the vehicle on boardcomputer can connect automatically to the owner's home virtual privatenetwork to upload and/or download information, settings, and otherinformation (such as user input into the vehicle computer, vehicledriving history (e.g., miles traveled, travel traceroutes, speedstraveled, and locations visited), vehicle service information (such asgas and fluid levels, engine problems, alarms or warnings activated, andthe like), input received by on board applications from the user (suchas scheduled appointments, notes, documents, and the like), applicationsdownloaded, and the like. Synchronization of the on board vehicle andhome computer can occur automatically whether the vehicle is turned onor off. This can be highly beneficial when the vehicle is parked in thegarage.

When the computational device is recognized and/or authenticated and/orwhen the computational device is determined to be within a proper areaand/or zone of the vehicle for the device type of the computationaldevice, the device discovery daemon 1020, in optional step 2016determines a spatial location and/or seat position of the computationaldevice to determine appropriate rights and/or privileges and/orrestrictions of the user of the computational device as defined by useraccount or profile associated with the user, the device type of thecomputational device, the seat position of the user, or area or zone inwhich the user and/or computational device is located.

In step 2020, the device discovery daemon 1020 permits or enablesconnection of the computational device with the vehicle network 356 orcommunication subsystem 1008 and optionally stipulates or defines whatset of tasks, functions, and/or operations the user of the computationaldevice can perform using the computational device, such as based on thelocation of the computational device within the vehicle and/or based onthe authentication credentials (e.g., the identity of the computationaldevice user).

When the computational device is determined to be outside of a definedarea and/or zone of the vehicle (e.g., outside the passenger compartmentor cabin) and the device discovery daemon 1020 does not recognize and/orauthenticate the computational device successfully, the device discoverydaemon 1020, in step 2024, denies access of the computational device toconnect to or access the vehicle network 356 or communication subsystem1008.

An example of the device discovery daemon 1020 operation will now bediscussed. Assume that a vehicle owner purchases an XM radio module offthe shelf from a vendor. The user then plugs in the module to thevehicle network. In attempting to enable the functionality of the XMradio, the device discovery daemon 1020 first attempts to recognizeand/or authenticate the module. During the process, the XM radio modulecan be permitted to communicate through the vehicle network or anantenna internal to the module with a remote website to confirm that theXM radio was purchased by the vehicle owner and/or perform licensingvalidation checks. The vehicle owner's XM radio account is likelyalready associated with the XM radio module when purchased.

When the XM radio module is plugged into a backplane (FIG. 4) in thevehicle network 356 or communication subsystem 1008, the trigger eventoccurs, and the device discovery daemon 1020 and combo controllercommence operation. After device discovery is completed successfully bythe device discovery daemon 1020, the combo controller downloads, fromthe user's XM account, the user's XM preferences (e.g., favorites) andcauses the XM functionality in the vehicle to be configured accordingly.During installation, the combo controller can provide an installation inprocess dialog the user and, upon successful completion, an installationcomplete dialog. After acknowledging that the installation is complete,a new application icon for the XM radio appears in the upper area of thescreen of FIG. 30. The new application icon can have a differentappearance than other previously installed application icons to informthe user that the new application is available. When the user launchesthe new application, the application screen is shown. The applicationscreen of any application depends on the application and userpreferences.

The environment 400 of FIG. 4 can interface with three different typesof blade processors. A first type of blade processors is installed priorto sale by a manufacturer or vendor. These blade processors are in amanufacturer “crate” and not replaceable or upgradeable by the customerbut only by a certified service facility. A second type of bladeprocessors can be installed post-sale by or on behalf of the customer.These blade processors are in a customer “crate”. A third type of bladeprocessors interfaces with the first and second type of bladeprocessors. These blade processors are in an accessory “crate”. Theblade processors generally refer to executable instructions executing ona microprocessor. Each blade typically includes a corresponding set offunctions (such as 802.11 WiFi™ interface, Bluetooth™ radio, cellphoneradio, storage unit, or satellite position system (such as GPS)), aflash memory, a microprocessor, and a network interface. Typically, thefunction is software or a combination of hardware and software. Examplesinclude a media controller blade, video controller blade, audiocontroller blade, profile identification module blade, and the like.This configuration may also be used for a wide variety of othersoftware, such as applications, drivers, and the like, and devices, suchas an infotainment system, satellite receiving system, and the like andcombinations thereof. For example, an aftermarket infotainment systemupgrade or component and/or module can be installed by the customer. Theinfotainment system upgrade or component and/or module searches for,locates, and connects to a suitable antenna installed prior to sale. Theoutput of the blade processor is an IP message framed into an Ethernetpacket. The blade processor can be compatible with the Car Area Network(“CAN”) protocol. The CAN control system, which was intended for sensorfeedback and controller control signaling through a relatively slow,serial bus, can be integrated into the blade processor architecture byterminating CAN buses in one or more Ethernet bus controllers. Theoutput is configured for a discrete Ethernet-based sensor or controller,with the translation to the CAN protocol being made at a CAN Ethernetcontroller subsystem.

A “crate” “commonly has a backplane connector and on-backplane Ethernetinterfaces that enable blade processors to communicate with one anotherusing Ethernet messages. The crate can be a USB hub have a series ofports to permit devices to connect to the USB hub; therefore, each“crate” generally has a corresponding USB hub and ports connectedthereto.

A master blade processor can be provided. The master blade processor canbe substantially the same as the other blade processors except forscheduling and control functionality. The master blade processor caninclude a service manager that inventories hardware and softwarecapabilities of components and/or modules available (or connected)through hard wire connections within the vehicle and/or computationaldevices connected wirelessly to the vehicle local area network (e.g.,through a wireless access point or local hot spot maintained by thevehicle control system). The output of the inventory step is a networktopology comprising assigned network addresses, component and/or moduledescription and capabilities, operational status, and “next hop”addresses to demonstrate positions of components and/or modules next toone another. An application resource table can be maintained that mapsapplication identity, functional description, and/or application typeagainst computational resource requirements and/or capabilities.Requests to the master blade processor allow various applications toaccess distributed services or automatically disable features notsupported by the vehicle's computer system.

The master blade processor can coordinate a health check for the variouscomponents and/or modules in or connected wirelessly to the vehicle'scomputer system and be responsible for sending a keep alive messages (orstatus queries or interrogation messages sent at periodic intervals) tothe various components and/or modules to evaluate health or identifymalfunctions. If no response is received within a predetermined timeperiod after keep alive message transmission, a malfunction is assumedto exist.

For components and/or modules requiring high availability, the masterblade processor can create a high availability set with a requirednumber of blade processors. This table controls the priority of whichblades are capable of becoming master blade processors in the event of amalfunction of the current master blade processor. Shadow copies of eachhigh availability component (e.g., device) and/or module (e.g.,application) are created and maintained for backup purposes in the eventof a malfunction of the corresponding active blade processor. Highavailability applications write all variables to a file created atapplication initiation residing in vehicle memory. In the event of amalfunction of a high availability application, the master bladeprocessor reassigns the high availability application to a new bladeprocessor. The application can be reinitiated or refreshed orsynchronized (using the shadow file) on the newly assigned bladeprocessor. In this manner, the master blade processor is able toredistribute applications to blade processors and/or stopping executionof applications to realize a selected level of performance for theentire vehicle computer system.

A table can be maintained mapping a network address (e.g., a MAC and/orIPv6 address) of each component and/or module against information aboutthe corresponding component and/or module and/or a pointer to a variablefile for the component and/or module in memory. Entries on the table mayhave a corresponding state of health or be added when the correspondingcomponent and/or module passes a health check or removed when thecorresponding component and/or module fails to pass a health check.

Upon start up, the master blade processor checks the applicationresource requirement entries in an application resource table andassigns each application to a blade processor having the most applicableand/or available resources. If an application has specific requirementsfor execution (e.g., a multimedia infotainment application), theapplication is assigned to and locked to a specific blade processor(such as a multimedia controller).

An operation of the master blade processor will be discussed withreference to FIG. 38.

In step 3800, the blade processor detects a stimulus. The stimulus canbe system boot sequence.

In step 3804, the master blade processor identifies and inventoriesenabled on board computational resources (such as each blade processor,IP router, vehicle sensors, database management systems, and the like,and the capabilities thereof. On board components and/or modules aretypically physically connected to a network bus.

In step 3808, the master blade processor identifies and inventoriesenabled portable computational resources and the capabilities thereof.Portable components, such as tablet computers and smart phones, aretypically wirelessly connected, via a wireless access point, to anetwork bus.

In step 3812, the master blade processor assigns a network address toeach enabled resource.

In step 3816, the master blade processor maintains and stores theresulting network topology in system data 208.

In one configuration, a blade processor is not identified as the“master” blade processor prior to system booting. An applicationexecutes on a designated blade processor (such as a blade processorhandling multimedia system or media subsystem functions) at boot time todetect the presence of a blade processor having specific capabilities.When the blade processor having the specific capabilities is identified,a variable associated with the designated blade processor is changedfrom “master” to “slave” and the system reboots, thereby transferringsystem control to the identified master blade processor. A table can becreated controlling a priority of which blade processors are capable ofbecoming master blade processors in the event of master blade processormalfunction. When a master blade processor malfunctions, a next inpriority blade processor is selected as the new master blade processor.

An operation of the master blade processor will be discussed withreference to FIG. 39.

In step 3900, the master blade processor detects a stimulus. Exemplarystimuli include determining that a component and/or module has failed ahealth check, receipt of a request for a component and/or module forblade processor resources to execute, and the like.

In step 3904, the master blade processor determines the requirements forexecution of a selected component and/or module, such as set forth inthe application resource requirement table. The selected componentand/or module can, for example, be a blade processor, software, such asan application, a component, such as a sensor, a satellite receivingsystem, and the like, and/or a combination thereof

In decision diamond 3908, the master blade processor, based on theresource inventory output in step 3808, determines whether a bladeprocessor is available to execute the selected component and/or module.This determination can be done by any number of techniques. It can bebased on one or more of a degree of compatibility of the selectedcomponent and/or module with each of the blade processor, a currentavailability of a blade processor to execute the selected componentand/or module (e.g., whether the blade processor is currently executinganother component and/or module), a relative importance or priority ofthe selected component and/or module relative to a relative importanceof a currently executing component and/or module on a blade processor,whether the blade processor can satisfy the requirements of the selectedcomponent and/or module, a current available bandwidth of a bladeprocessor which may be executing another component and/or module, andthe like.

In step 3912, which is performed when a blade processor is available toexecute the selected component and/or module, the master blade processorassigns the selected component and/or module to a blade processor forexecution. The assignment is recorded in a resource allocation tablewhich maps application identity and/or description against an identifierof the assigned blade processor. If an application has specificrequirements for execution (e.g., a multimedia infotainment applicationor firewall application), the master blade processor may permanentlyassign the application (or lock the assignment) to a specific bladeprocessor. The master blade processor can, for unlocked assignments,redistribute or reassign components or modules to blade processors orstop components or modules from executing to realize a maximumperformance level for the system and/or ensure that critical vehicle,less critical vehicle, or infotainment tasks, functions, or operationsare performed.

By way of example, the master blade processor can stop a lowerimportance or priority component and/or module from executing in favorof a higher importance or priority component and/or module requiring ablade processor to execute. For example, a critical task, function oroperation has a higher level of importance or priority than a lesscritical vehicle task, function or operation. A less critical vehicletask, function or operation can have a higher level of importance orpriority than an infotainment task, function or operation or vice versa.

The master blade processor, in next step 3916, updates the networktopology.

In step 3920, which is performed when a blade processor is unavailableto execute the selected component and/or module, the master bladeprocessor denies the selected component and/or module permission toexecute.

When the master blade processor determines that a minimum set of bladeprocessor resources and/or capabilities is not operational, it will senda system reset message to clear operator warning circuitry within anallocated timeframe.

Streaming of Media

An integrated circuit board configuration can be provided to enablemedia streaming to computational devices wirelessly connected to thevehicle network via an access point 456 of the vehicle. In this manner,different media can be provided simultaneously to different userinterfaces (e.g., on board display subsystems) of different vehicleoccupants.

FIG. 21 depicts a configuration of the media controller subsystem 348for simultaneously streaming multiple channels of media (e.g.,multimedia or infotainment content). Media content 2100, such as audio,video, picture, and/or text media, is received by the networktransceiver 824 and provided to a common media processing board 2104.The processing board 2104 comprises a network control server 2108, suchas a distributed network control (“DNC”) server, a media server 2112,such as a digital living network alliance (“DLNA”) server, and virtualnetwork console (“VNC”) software 2116. The network control server 2108has an IP address and/or a routable, global unicast address while themedia server has a contactable electronic address (such as a mediaaccess control or MAC address) on the vehicle network 356 orcommunication subsystem 1008.

As will be appreciated, each of the network control and media servers2108 and 2112 comprise a microprocessor and memory to buffer mediacontent, execution of application programming, long term storage ofprogram instructions and/or data, and the like. In one application, themedia server 2112 comprises functionality of the media controller 804,media processor 808, and signal processing module 828.

A user portable (remote) or Bring Your Own Device (BYOD) computationaldevice 2120 is in wireless or wired communication with the board 2104,such as via a wireless protocol (e.g., Bluetooth™, WiFi™, and the like).The VNC software 2116 effectively provides the remote computationaldevice 2120 (e.g., portable communication device) with remote access tothe board 2104, which is typically part of the vehicle on board computer(e.g., the console computer). As will be appreciated, the VNC softwarecan operate in accordance with the RFB (Remote Frame Buffer) protocol ontop of the TCP/IP suite of protocols. The result is that the remotecomputational device appears to the on board computer as if it were partof the on board vehicle computer or vehicle control system 204. Thisenables the remote computational device to provide commands to the mediacontroller subsystem 348 for desired multimedia content and mediapresentation features and settings (such as volume, contrast,resolution, channel selection, and the like). In some applications, theremote computational device must download an application from thevehicle to enable multimedia requests from the remote computationaldevice to pull information from the multimedia controller, where themedia can be streamed to its final destination. The commands areprovided, by the VNC software 2116 indirectly to the media server 2112for delivery to the network control server 2108 or directly to thenetwork control server 2108, which retrieves the requested content froman external network (e.g., an Internet or radio network) accessiblesource. The media may then be provided to a display at the seat positionof the user and/or to the BYOD computational device 2120 (via thewireless access point). When the requested media content is availablelocally (already stored in vehicle memory), the media content isprovided from local storage in preference to accessing the media contentvia the Internet. When the requested media is not available locally, itis obtained via the Internet and is cached in local storage in parallelwith streaming to the user's display and/or BYOD computational device2120. Each display at each seat position can independently provide acorresponding user with a playlist of audio or video from independentsources.

With reference to FIG. 22, the operation of the media controllersubsystem 348 will be discussed. In step 2200, the VNC software 2116receives a command or request for content from the user of the BYODcomputational device. The device has been previously connectedsuccessfully by the device discovery daemon or combo controller to thevehicle network 356 or communication subsystem 1008.

Typically, the combo controller has ports in the crate, implementscertain device discovery functions, and packetizes information fortransmission via IP over Ethernet. The combo controller commonlyinstalls the correct driver for the discovered device. It then maps thedevice (e.g., USB) address to a local TCP/IP address for interactionwith one of the blade processors.

In step 2204, the media server determines, from the system data 208,portable computational device information and capabilities, the identityof the user of the device, an identity of the portable computationaldevice associated with the user, and/or the spatial location of thedevice (e.g., area and/or zone in which the device is located). Thisinformation has been previously determined by the device discoverydaemon or combo controller but may be updated by the media server usingthe location techniques discussed above.

In step 2208, the media server applies appropriate filters andrestrictions based on the identity of the user (e.g., user account)and/or spatial location of the device (e.g., user context). The filtersor restrictions can include, for example, age-related content filtersand/or restrictions, seating location filters and/or restrictions, andprivacy filters and/or restrictions. The filters and/or restrictions canban the type of content requested or the source of the content (e.g., ablacklist of web sites), redirect the request to a different source ofthe content, and/or limit the user to content from approved sources,such as permitted by a whitelist. Other user account restrictions can beapplied by the media server before the content request is passed to thenetwork control server 2108.

The owner of the vehicle can configure the multimedia controller menus.Initially, the menu allows for all seat positions to access any mediathat is available through the multimedia controller. The owner cancreate profiles for different potential vehicle occupants. By creatingthe profiles, the owner is able to allow or disallow access to mediafrom selected seat positions, including access to media menus (e.g.,audio or video playlists, software applications (such as Internetbrowsers, applications to control passenger compartment climate controlfunctions, games, and the like). The owner can also limit media and/ormedia menu access based on a MAC address of a computational device 2120of an occupant. Only devices having a permitted MAC address can accessmedia and/or menus while those not having a permitted MAC addresscannot. This can ensure that control is not only position-based but alsodevice-based.

In step 2212 and if permitted by the media server, the network controlserver 2108 accesses the filtered content request (which may be alteredto reflect user account restrictions) and retrieves the permissiblecontent via the public network. The network control server 2108, forexample, can access the media content 2100 from a media source accessedthrough an external network, such as a radio network or other type ofuntrusted public network (such as the Internet). The filtered contentrequest may, for example, be for different content than that originallyrequested, differently formatted content than that originally requested,differently sourced content (e.g., from a different web server or site)than that originally requested, and the like.

In step 2216, the network control server 2108 receives the permissiblecontent from a publicly networked source (e.g., web server or site) andpasses the retrieved content to the media server 2112. Based on useraccount restrictions and/or user context, the media server appliesappropriate filters and restrictions to remove or filter outinappropriate content. The filters or restrictions can include, forexample, age-related content filters and/or restrictions, seatinglocation filters and/or restrictions, and privacy filters and/orrestrictions.

In one application, the combo controller connects via IP over Ethernetand assigns a local IP address to the BYOD device connected to a port inthe consumer crate. The USB layer of the combo controller packetizesinformation from the BYOD device and communicates with a USB accessprogram that executes on a multimedia blade processor. The USB accessprogram de-packetizes the information and connects to the USB I/Osubsystem of the multimedia blade processor to transfer the informationto either local storage or directly to one of the output devicesassociated with the appropriate seating position.

Other user account restrictions can be applied by the media serverbefore the content is passed by the media server to the user. Forexample, when the user is driving the vehicle video can be removedautomatically from the content to avoid distracting the driver so thatonly the audio channel accompanying the video channel is provided to theuser. In another example and in response to determining that therequesting user or user is driving the vehicle rather than being a(non-driving) passenger, screen magnification can be appliedautomatically to the visual content to assist the driver of the vehicle;that is, the user is the driver and larger font is easier to see thansmaller font. In other examples, the visual content, in response todetermining that the requesting user or user is driving the vehiclerather than being a (non-driving) passenger, is presented or renderedautomatically in a large font and/or icon size (e.g., without changingscreen resolution) compared to the font and/or icon size for the contentdisplayed to a (non-driving) passenger to reduce driver distraction. Inyet another example, the media server 2112 determines that the user isdriving the car rather than being a (non-driving) passenger and enablesor disables automatically removal of all unnecessary animations from thecontent to be displayed. In yet another example, the media server 2112determines that the user is driving the car rather than being a(non-driving) passenger and enables automatic removal of backgroundimages from, while leaving one or more displayed foreground images in,the content to be displayed. In yet another example, the media server2112 determines that the user is driving the car rather than being a(non-driving) passenger and automatically enables or renders highcontrast (e.g., between text and background colors) to make thedisplayed content more visible to the user. The feature and/or settingand/or filters could be applied to the displayed content only when thevehicle is in motion or in forward or reverse gear and not parked evenwhen the user is the driver.

Rather than automatic detection, any of the above features and/orsettings and/or filters can be a standard feature and/or setting and/orfilter and can be applied to the on board vehicle display for the driverbut not to the on board vehicle displays of other (non-driving)passengers. In other words, the feature or setting or filter would notbe applied to the on board vehicle display of a (non-driving) passenger.Alternatively, the feature and/or setting and/or filter would be appliedto the on board vehicle display for the driver only when the vehicle isin motion or in forward or reverse gear but not when the vehicle isparked.

In step 2220, the media server 2112 configures the filtered media forthe capabilities of the user device and/or on board vehicle display andin accordance with user preferences. The media server 2112 directlyprovides, or streams, the media stream or indirectly provides, orstreams, the media stream via the VNC software 2116 to the usercomputational device 2120 and/or on board vehicle display forpresentation to the user. Stated another way, the network control server2108 provides the media content 2100 while the media server 2112provides the channel for the media content 2100 to be provided to theuser computational device 2120.

The media controller subsystem 348 can handle multiple (e.g., eight ormore) media and/or multimedia streams simultaneously by differingchannels. The streams of information may be separated and served ondifferent channels via one or more of WiFi, Bluetooth, NFC, and othercommunications protocols. Multiple BYOD computational devices can beserved simultaneously and can mix and match or otherwise control what isstreamed and where it is streamed.

Assisted driver Display

The device or user interface 212, 248, user interface (s)/inputinterface(s) 324 and/or I/O module 312 (such as the on board display forthe driver) can be reconfigured when the vehicle changes state fromparked or substantially motionless to be in motion or in forward orreverse gear to facilitate the driver's ability to view visual contentand avoid driver distractions. Other devices or user interfaces 212,248, user interface (s)/input interface(s) 324 and/or I/O modules 312 ofother vehicle occupants or passengers typically are not reconfiguredeven when the vehicle is in gear or motion. When the state of thevehicle changes to parked (or not in motion), the device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 of the driver returns to a different configuration, which istypically the same configuration as the devices or user interfaces 212,248, user interface (s)/input interface(s) 324 and/or I/O modules 312 ofother vehicle occupants or passengers.

There are a number of reconfigurations that may be implemented for theunimpaired driver's device or user interface 212, 248, user interface(s)/input interface(s) 324 and/or I/O module 312 in response to a changeof state of the vehicle, particularly from parked or stationary to be inmotion or in forward or reverse gear.

For example, the media controller subsystem 348 can remove videoautomatically from the content to be displayed by the device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 of the driver to avoid distracting the driver so that onlythe audio channel accompanying the video channel is provided to theuser. A still image derived from one or more frames of the video contentcan replace the video component in the displayed content.

In another example, the media controller subsystem 348 applies screenmagnification automatically to the visual content to assist the driverof the vehicle; that is, the user is the driver and larger font iseasier to see than smaller font. The screen magnifier is software thatinterfaces with a computer's graphical output to present enlarged screencontent. The simplest form of magnification presents an enlarged portionof the original screen content, the focus, so that it covers some or allof the full screen. This enlarged portion should include the content ofinterest to the user and the pointer or cursor, also suitably enlarged.As the user moves the pointer or cursor the screen magnifier shouldtrack with it and show the new enlarged portion.

In another example, the media controller subsystem 348 presents orrenders the automatically in a large font and/or icon size (e.g.,without changing screen resolution) to reduce driver distraction. Thelarge font and/or icon size, unlike screen magnification, applies toall, and not simply a portion of, displayed content.

In yet another example, the media controller subsystem 348 initiatesautomatically a screen reader (or other text-to-speech program) toaudibly provide the visual content to the user. A screen reader is asoftware application that attempts to identify and interpret what isbeing displayed on the screen (or, more accurately, sent to standardoutput, whether a video monitor is present or not). This interpretationis then re-presented to the user with text-to-speech and/or sound icons.Screen readers can be used in combination with the screen magnifier toread the content within the enlarged portion of the screen content.

More specifically, screen narration in vehicle can describe the layoutof a current display, including a current position, page, functionality,etc., of displayed content and the position of a digit of the userand/or cursor relative to displayed objects. The names of the displayedobjects in proximity to the current digit and/or cursor location can beaudibly identified. In another example, a user can identify a displayedobject to be located and the media controller subsystem 348 can use“hotter”, “hot”, “colder”, and cold” game to inform the user where hisor her digit and digit movement is relative to the identified object.For example, the media controller subsystem 348 can tell the user that“you're getting warmer” as the user's digit moves closer to theidentified object.

In yet another example, the media controller subsystem 348 determinesthat the user is driving the car rather than being a (non-driving)passenger and enables or disables automatically remove all unnecessaryanimation effects, such as fading effects fade windows), from thedisplayed content.

In yet another example, the media controller subsystem 348 automaticallyremoves background images from the displayed content while leaving oneor more displayed foreground images. The removed background image can bereplaced with a uniform background, such as a commonly colored or whitebackground.

In yet another example, the media controller subsystem 348 enablesautomatically a longer (than normal) period for notification dialogboxes to stay open on the display.

In yet another example, the media controller subsystem 348 automaticallydisables automatic arrangement of windows when the mouse cursor is movedto the edge of the screen.

In yet another example, the media controller subsystem 348 automaticallyenables activate a window by hovering over it with the mouse cursor.

In yet another example, the media controller subsystem 348 automaticallyenables keyboard web page navigation.

In yet another example, the media controller subsystem 348 automaticallyenables or renders high contrast (e.g., between text and backgroundcolors) to make the displayed content more visible to the user.

In yet another example, the media controller subsystem 348 automaticallychanges the color and transparency of window borders (making the borderseasier to see).

In yet another example, the media controller subsystem 348 automaticallychanges the thickness of focus rectangle (around the currently selecteditem in a dialog box).

In yet another example, the media controller subsystem 348 automaticallychanges the color, size, and/or thickness of the on-screen mousepointer.

In yet another example, the media controller subsystem 348 automaticallychanges the keyboard settings (e.g., select how long you need to press akey before the keyboard character starts repeating, the speed at whichkeyboard characters repeat, and the rate at which the cursor blinks,etc.).

In yet another example, the media controller subsystem 348 automaticallyignores colors, font styles and font sizes used on web pages, or formatsweb pages using a user specified or default style sheet.

In yet another example, the media controller subsystem 348 automaticallyenables or renders in the content an increased size of amouse-selectable screen element or object to provide a larger target.

In yet another example, the media controller subsystem 348 automaticallyenables mouse keys to move the mouse pointer or cursor.

In yet another example, the media controller subsystem 348 automaticallyenables one or more of sticky keys (which allow the user to enter acombination of multiple keys without having to hold a first key downwhen he or she depresses a second key), toggle keys (which play an alerteach time the user presses Caps Lock, Num Lock, or Scroll Lock keys),and filter keys (which causes the computer to ignore keystrokes thatoccur in rapid succession or keystrokes held down for several secondsunintentionally).

In yet another example, the media controller subsystem 348 automaticallycauses the driver's device or user interface 212, 248, user interface(s)/input interface(s) 324 and/or I/O module 312 to be configured toenable blind typing. In blind typing, the driver can write naturallywith a finger on the interface and the interface can determine, from thenatural written script, a command or request of the driver. Thisconfiguration typically requires the interface to be configured as atouchpad. While other systems require the driver to focus away from theroad—either by selecting letters from menus or on a displayedkeyboard—blind typing permits the driver to input commands or requeststo the vehicle control system without having to visually focus on anyscreen.

Although many of the above display changes or reconfigurations have beenused to enable impaired users to access a computer, the driver istypically not disabled or impaired (e.g., not visually impaired ordisabled). These changes or reconfigurations can however be highlybeneficial in enabling a driver to interact with the computer in amanner that substantially avoids or inhibits driver distraction.

Rather than automatic detection, any of the above features and/orsettings and/or filters can be a standard feature and/or setting and/orfilter and can be applied to the on board vehicle display for the driverbut not to the on board vehicle displays of other (non-driving)passengers. In other words, the feature or setting or filter would notbe applied to the on board vehicle display of a (non-driving) passenger.Alternatively, the feature and/or setting and/or filter would be appliedto the on board vehicle display for the driver only when the vehicle isin motion or in forward or reverse gear and not when the vehicle isparked.

A user interface (UI), such as the driver's device or user interface212, 248, user interface (s)/input interface(s) 324 and/or I/O module312, may be provided that includes an area for navigation by a user. Asa user navigates the UI area, the user may be provided with one or moreof sounds, audio narration, haptic/tactile feedback, visual indicator(e.g., not associated with the UI), and the like. For example, alocation in the UI area may represent a button and/or other icon. Whenthe user makes contact with the location having the button, a soundand/or tactile feedback may be presented to the user to indicate wherethe user's pointer (e.g., one or more finger, hand, etc.) is located. Asone example, as a user reaches a location in the UI area associated witha “call” button, the sound presented may be a ring (e.g., a bell), and avibration may be provided to the UI. Alternatively, screen narration bya screen reader can be provided, which informs conversationally the userwhere his or her digit is located. For example, the narration can be torecite the name corresponding to the button. In another example, as auser moves a pointer about the UI area, a frequency of sound may changeto indicate a position in the UI area (e.g., the low left portion of theUI area may provide a low pitch and/or frequency sound, while a positionin the upper right portion of the UI area may have a higher pitch and/orfrequency sound, and portions in between can have different pitchesand/or frequencies, etc.—similar to the Theremin musical instrument).

By way of example, a graphical UI or GUI may allow a user to interactwith certain displayed buttons, features, and/or menus while a vehicleis stationary, but may restrict access and/or interaction when thevehicle is moving. One example of this restricted interaction involvesgreying-out buttons associated with an associated phone feature when thevehicle moves. In the embodiments provided herein, the display can becompletely turned off or blanked out when moving and a user may still beable to interact with features. Because the user will not be distractedby the visual presentation of elements the user is free to drive whileinteracting.

In some embodiments a GUI may be used where a display of the GUI isturned off to provide the above described functionality.

A display navigation mode can be selectively triggered by the user toimplement any of the above configurations and/or features. When the userwishes to enter display navigation mode, the user can provide a command,such as by voice or gesture, to enter that mode. In that mode, any ofthe above assistive configurations or features can be implemented. Forexample, voice navigation is activated and the residence time of theuser's touch on the touch screen required to select a contacted icon islengthened to avoid incidental or accidental icon selection as the usermoves his or her hand/digit around the touch screen. When the userarrives at a desired location, the icon will be activated after touchcontact for the longer residence time. When the icon is selected, thetouch screen can return to normal operating mode with a shorterresidence time for icon activation.

The user can alternatively use a roller or track ball and selector toeffect narrated screen navigation.

In another embodiment, the user contacts an arbitrary and substantiallyplanar or flat control surface, such as an arm rest, dash, steeringwheel, glove box door, center or rear center console, window (e.g.,windshield), passenger compartment roof, seat surface, door panel, orother electrically, magnetically, electromagnetically, and opticallynonreactive surface to activate icons on the activated or deactivatedvehicle computer center or rear center display. The control surface canbe any arbitrary surface selected by the user. This can be done byoptically or visually separating the surface into segments, each segmentcorresponding to a segment on the display. The movement of the user'shand or digit is tracked optically over the surface with reference tothe segments. As the user moves his or her hand, the user can be audiblytold where his or her hand is relative to the display. When the user'shand/digit is at a selected location, the user can leave his or herhand/digit at that location for a selected residence time to cause theicon in the corresponding segment of the display to be activated.

The activated or deactivated vehicle computer center or rear centerdisplay can be any of the driver's device or user interface 212, 248,user interface (s)/input interface(s) 324 and/or I/O module 312, may beprovided that includes an area for navigation by a user.

An example is described with reference to FIGS. 33-34. FIG. 34 depictsthe display of FIG. 30 with defined segments overlaid on the display.This is done to show the process of mapping the control surface to thedisplayed objects. FIG. 33 shows the same defined segments positioned onthe control surface 3300. Each segment of the control surface 3300corresponds to an information-containing and/or activatable orselectable object of the current display. As the display changes inresponse to user input or otherwise, the type, identity, and/orarrangement of displayed information and objects changes requiring thedisplay to be remapped to the control surface 3300. Remapping typicallyrequires the defined segments to be redefined and reconfigured toreflect the new display configuration.

As shown by FIG. 33, the dividing lines define various cells, each ofwhich corresponds to displayed content on the display of FIG. 34.Specifically, cell 3304 a corresponds to display field comprising drivername 3028, cell 3304 b to satellite reception indicator 3032, cell 3304c to WiFi connectivity indicator 3034, cell 3304 d to cellularconnectivity indicator 3036, cell 3304 e to display field comprisingweather information 3038, cell 3304 f to display field comprising date3040, cell 3304 g to icon 3380, cell 3304 h to navigation (“Nav” icon)3016, cell 3304 i to media (“Media” icon) 3018, cell 3304 j to phone(“Phone” icon) 3020, cell 3304 k to rear view (“Rear View” icon) 3022,cell 33041 to other applications icon 3024, cell 3304 m to icon 3384,cell 3304 n to “my dash” icon 3026, cell 3304 o to navigation displayfield 3088, cell 3304 zz to suggested icon, cell 3304 p to setdestination icon, cell 3304 q to display field containing destination,cell 3304 r to display field containing suggested waypoint, cell 3304 sto display field containing suggested waypoint, cell 3304 t to setdestination icon, cell 3304 u to set destination box, cell 3304 v tofavorites icon, cell 3304 w to recent locations, cell 3304 x to peopleicon, cell 3304 y to points of interest icon, cell 3304 yy to setwaypoints, cell 3304 z to set waypoints box, cell 3304 aa to go icon,cell 3304 bb to calendar icon 3092, cell 3304 cc to weather icon 3096,cell 3304 dd to display field containing appointment, cell 3304 ee todisplay field containing appointment, cell 3304 ff to display fieldcontaining appointment, cell 3304 gg to display field containingappointment, cell 3304 hh to display field containing appointment, cell3304 ii to display field containing appointment, cell 3304 jj to displayfield containing weather information, cell 3304 kk to display fieldcontaining weather information, cell 330411 to display field containingweather information, cell 3304 mm to display field containing weatherinformation, cell 3304 nn to display field containing weatherinformation, cell 330400 to display field containing weatherinformation, cell 3304 pp to friends icon, cell 3304 qq to receivedand/or sent messages 3068, cell 3304 rr to received and/or sent messages3068, cell 3304 ss to received and/or sent messages 3068, cell 3304 ttto received and/or sent messages 3068, cell 3304 uu to received and/orsent messages 3068, cell 3304 vv to received and/or sent messages 3068,cell 3304 ww to icon 3098, cell 3304 xx to a climate control icon(“Climate” icon), cell 3304 aaa to a controls icon (“Control” icon) tocontrol vehicle tasks, functions or operations 3062, cell 3304 bbb tospeaker volume setting 3064, cells 3304 ccc and 3304 ddd to controls tothe left and right of the speaker image 3066 and 3070, respectively, andcell 3304 eee to speaker icon.

By way of example, the user's digit points at 3304 h, which correspondsto the navigation icon 3016 of the home page 3000 of FIG. 30. By leavingthe user's digit stationary in that location for a selected period oftime, the media controller subsystem 348 determines that the userdesires to activate the navigation icon 3016, which causes a differentdisplay to be rendered. The new display is remapped to the controlsurface so that the dividing lines on the control surface mirror thedividing lines overlain on the new display. By way of further example,the user's digit points at 3304 f, which corresponds to the displayfield for date and time of the home page 3000 of FIG. 30. A screenreader reads the date and time to the user. By way of further example,the user's digit points at 3304 dd, which corresponds to the displayfield for appointment of the home page 3000 of FIG. 30. A screen readerreads the displayed appointment information to the user.

Optical tracking of the user's digit enables the location of the digit.Optical tracking typically determines in real-time the position of thedigit by tracking the positions of either active or passive infraredmarkers attached to the object. The position of the point of reflectionis determined using the camera sensors 760, motion sensors 744, and/orinfrared sensors 740. In one configuration, the user's digit is equippedwith markers. Markers can be light reflectors (“passive markers”, e.g.retroreflectors) or light emitters (“active markers”, e.g. LEDs). Toalso measure the orientation of a body, several (greater than or equalto 3) of these markers have to be arranged at a known geometry. Thecamera sensors 760 scan a certain volume and detect the light that comesfrom the markers. These images are processed to identify and calculatepotential marker positions (in image coordinates). The result of eachmeasurement are coordinates that describe the position of the markers,and hence the position and orientation of the body carrying the markers.

Other techniques can be employed. The cell dividing lines can beprojected onto the control surface by the camera sensors 760. Theposition of a selected digit of the user can be tracked using imageprocessing of images of the control surface with the cell boundary ordividing lines in the images. Examples of other techniques include videotracking, such as blob tracking, kernel-based tracking, contourtracking, visual feature matching, match moving, motion capture, motionestimation, Swistrack, and single particle tracking.

The operation of the control surface will be discussed with reference toFIG. 35.

In step 3500, the media controller subsystem 348 detects a stimulus,such as ignition of the engine, motion of the vehicle, the vehicle beingplaced in gear, a gesture or other activation command from the user, andthe like.

In response, the media controller subsystem 348, in step 3504, maps thecurrent display of a selected one of the driver's device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 to a selected control surface. This can include proportionalsizing the control surface to the display and determining cell and cellboundary locations. The sizes of the cells are commonly proportional tothe corresponding displayed content.

In step 3508, the media controller subsystem 348 determines, by one ormore of the motion sensors 744, infrared sensors 740, and camera sensors760, whether a user's digit has moved relative to the stationary cellboundaries and cells on the mapped control surface.

When movement is detected, the media controller subsystem 348, in step3512, detects or determines, by one or more of the motion sensors 744,infrared sensors 740, and camera sensors 760, the position of the digiton the control surface relative to the cells and cell boundaries.

In step 3516, the detected position of the digit is mapped to thecurrently displayed content. This is done by mapping the cell where thetip of the digit is positioned to the corresponding displayed content onthe display.

In step 3520, the media controller subsystem 348 performs an actionbased on the detected digit position. The action depends on the type ofdisplayed content corresponding to the digit position. When thedisplayed content is activatable or selectable, the media controllersubsystem 348 activates the corresponding task, function or operation.When the displayed content is not activatable or selectable, a screenreader in the media controller subsystem 348 reads the displayed contentto the user. Some operations are drag-and-drop operations where contentis moved by the user's digit from one location to another, such as adestination or waypoint being dragged from one location and dropped intoa set destination or wet waypoint box. This can be done by detecting theuser's digit in a first location, determining that the displayed contentcan be dragged and dropped to another location, waiting for the digit tomove to a second location, and, when in the second location, droppingthe content into displayed content corresponding to the second locationwhen the displayed content permits this operation to be performed.

As noted, when the task, function or operation causes the display tochange the control surface is remapped to the display.

In another embodiment, the UI may not include any display at all.Because any surface can receive input, as provided herein, a display isnot needed. Examples of this type of display-less UI can be implementedon any surface that has a substantially flat or planar area or surface.In one embodiment, the UI area may include a capacitive and/or resistivetouch interface region. In another embodiment, the UI area may be asurface that includes an area visible from at least one image sensor(e.g., camera, etc.). Other examples of a display-less UI may include avolume of space in which a user can move a pointer.

In the examples provided above, a user may navigate the non-displayed UIelements (e.g., icons, buttons, etc.) using sound, haptic feedback, etc.

An operation of the media controller subsystem 348 will now be describedwith reference to FIG. 26.

In step 2600, a stimulus is detected by the media controller subsystem348 based on input from one or more vehicle sensors. An exemplarystimulus includes a change in vehicle operating state. Common changes invehicle operating state include a change from “parked” to “forward gear”and vice versa, from “parked” to “reverse gear” and vice versa, from“forward gear” to “reverse gear” and vice versa, and from stationary toin motion and vice versa.

In decision diamond 2604, the media controller subsystem 348 selects adevice or user interface 212, 248, user interface (s)/input interface(s)324 and/or I/O module 312 and determines whether or not it is associatedwith the driver. This is typically determined by determining whether ornot the selected device or user interface 212, 248, user interface(s)/input interface(s) 324 and/or I/O module 312 is located in an areaand/or zone occupied by the driver. Location of the device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 can be determined using the techniques noted above.

When the device or user interface 212, 248, user interface (s)/inputinterface(s) 324 and/or I/O module 312 is located in the area and/orzone of the driver, the media controller subsystem 348, in step 2608,reconfigures the user interface to enable or disable (depending on theinitial and final states) one of the features, settings, or filtersdiscussed above.

When the device or user interface 212, 248, user interface (s)/inputinterface(s) 324 and/or I/O module 312 is not located in the area and/orzone of the driver, the media controller subsystem 348, in step 2608,does not reconfigure the user interface to enable or disable (dependingon the initial and final states) one of the features, settings, orfilters discussed above.

After performing either of steps 2608 or 2612, the media controllersubsystem 348 selects a next device or user interface 212, 248, userinterface (s)/input interface(s) 324 and/or I/O module 312 and returnsto decision diamond 2604.

This process is continued until all devices or user interfaces 212, 248,user interface (s)/input interface(s) 324 and/or I/O modules 312 havebeen considered.

In other embodiments, the media controller subsystem 348 can audiblywarn of or describe an image detected via an infrared sensor, motionsensor or camera sensor that is in the path of the vehicle. Known imageprocessing and image recognition techniques can be used to identify theobject image and compare the image to a projected path of the vehicle.An exemplary technique acquires the image, pre-processes the acquiredimage, performs feature extraction from the pre-processed image,performs detection and/or segmentation using the extracted features, andperforms high level processing and decision making. The path of thevehicle, as determined by a steering wheel setting and a projected pathof the center line of the vehicle for that setting along with a width ofthe vehicle can be compared against the position of the object. When theprojected path causes any portion of the vehicle to contact the objector be within an unsafe distance of the object, appropriate instructionsor warnings can be issued. Thus, not only can a warning containing theobject description be provided to the driver but also directions can beaudibly provided to enable the driver to miss the object. For example,the driver can be instructed by one or more of the following: “WatchOut!”; “Turn the wheel left, a little more, a little more, perfect,straighten out”; “Turn the wheel right, a little more, a little more,perfect, straighten out”; and the like. This can provide invaluableassistance to driver's who struggle, for example, with backing up thevehicle due to depth perception and/or orientation issues.

User Account Management and Occupant Control of Vehicle Tasks, Functionsand Operations

The vehicle control system 204 can manage user accounts that stipulate,control, and define rights and privileges of each user of the vehicleand vehicle network. Different users and/or devices may includedifferent accounts. In some cases these accounts may include user and/ordevice-specific privileges.

For example, a system user has exclusive rights and privileges over allcommunication device firewall rules and running software. The systemuser can control selected vehicle tasks, functions and operations andinfotainment via predetermined or preconfigured gestures. A manufactureror vendor user can have local or remote access to on board controlsystem data and alter the parameters and settings in the vehicle controlsystem and to perform diagnosis and repair. A dashboard user can haverights to launch a dashboard application and authenticate guest ordefault users and change permissions to trusted friends or familymembers. Dashboard users can read on board diagnostic system data butcannot overwrite or change it. A user can be both a system and dashboarduser. An Internet source interacting with the vehicle has only httprights to respond to http requests received from the vehicle. Therequests can target different user data but these are filtered bydefault user accounts. Guest users have no rights. Family and friendusers have rights to play media from the media controller and to streamits media to the controller. They may or may not have rights to controlvehicle tasks, functions and operations, whether or not by gesture. Theback seat displays are part of this group of users. The back seatdisplays can be smart WiFi removable communication devices that can beremoved from the vehicle in WiFi range of the communication network.

In one example, a child user may wish to change the temperature in hiszone of the vehicle. Continuing the example, the child may have anaccount that allows access to this feature (but not other more criticalfeatures). As such the child may change the temperature via the deviceor other control. The child, however, may not be entitled to change thefeature for an area or zone other than that in which he or she iscurrently located. Additionally or alternatively, a driver may have abroader account and privileges. In this case, the driver may controlcritical features, and even tasks, operations, and functions, of avehicle. Remote control of a vehicle or infotainment task, operation, orfunction through the on board vehicle computer and by a portable orhandheld computational device, such as a cellular phone or tabletcomputer, interconnected with the vehicle computer, can be permitted forsome users but not others. For example, a privileged user can control aninfotainment or climate control function on the dashboard from the backseat of the vehicle. The control of the vehicle or infotainment task,function, or operation may be made via a device or user interface 212,248, user interface (s)/input interface(s) 324 and/or I/O module 312.Accordingly, occupant control of a (typically non- or less critical)vehicle task, function, or operation (such as an infotainment task,function or operation) can be done using an on board (or vehiclemounted) computational device or a portable computational devicediscrete from and not mounted on the vehicle.

In another example, a user in the rear passenger seat of a vehicle maywish to take control of specific features that are allowed in that zone.Such features may include controlling the climate, changing a radiostation or infotainment presentation, opening a window, setting a volumelevel, setting a screen contrast and/or resolution, and/or adjusting aseat position. The control of these features may be provided to the userin the rear passenger seat via a display, gesture control region, orother device associated with the zone in which the rear passenger isseated. Associated devices may include the user's smart-phone, tablet,computer, and/or other device.

In yet another example, a vehicle occupant can perform a first set ofvehicle tasks, functions and operations when in a first area and/or zoneand a different set of vehicle tasks, functions, and operations when ina different second area and/or zone. For instance, a vehicle occupantcan drive the car or perform another critical vehicle task, function oroperation when seated in the driver's seat but not when seated in adifferent seat. When the vehicle occupant is in the back seat, he isunable to be a back seat driver of the vehicle or perform anothercritical vehicle task, function or operation.

In yet another example, a vehicle occupant can perform a first set ofvehicle tasks, functions and operations when the vehicle is in a firstoperating state and a different set of vehicle tasks, functions, andoperations when the vehicle is in a second operating state. The vehicleoccupant, for instance, can watch a video on the driver's center consoleor display subsystem when parked and/or the vehicle is stationary (notin motion) but cannot watch the video on the driver's center console ordisplay subsystem when the vehicle is in gear and/or motion.

In yet another example, a different authentication procedure is used forthe vehicle occupant when requesting a first set of vehicle tasks,operations, and functions than when requesting a second set of vehicletasks, operations, and functions. When the vehicle occupant is entitledto drive the vehicle or perform another critical vehicle task, functionor operation, a different and higher or more stringent set ofauthentication requirements can be required than when the vehicleoccupant is not entitled to drive the vehicle. For instance, multipleauthentication techniques may be used in the former case but only one inthe latter case.

As noted, the vehicle control system 204 manages user accounts, whichcontain user credentials, such as user identifiers, passwords, userbiometric data (e.g., fingerprints, retina images, facialcharacteristics, user weight, and other physical characteristics), andrights and privileges of the user in performing vehicle tasks,functions, and operations, both critical and non-critical. In additionto the rights and privileges defined in the user account, the vehiclecontrol system 204 can consider additional gating or filtering factors,such as current user position (e.g., what area and/or zone the user islocated or seated in), in determining what rights and privileges applycurrently to the user.

The vehicle control system 204 can manage and enforce accounts forauthenticated and non-authenticated users. Each account specifies rightsand privileges for the corresponding user and/or security/authenticationrequirements and/or personal settings of the user (such as seat andlumbar settings, climate control settings, lighting settings,configuration of instrument cluster, rear view mirror settings, drivingmodes (such as fuel economy, sport, city, and the like), media channelsettings or presets, media delivery preferences, music genrepreferences, scheduled programs, playlists, synchronization withcloud-based data associated with the user (such as iCloud™ of Apple™,Outlook™, and the like with examples of cloud-based data beingelectronic calendar, email, contacts, media content, texts, voice mailmessages, and the like), application-specific personalization andselections, display settings and configurations, and the like) and otherinformation noted above with respect to the profile data 252 and devicedata 220. These will be henceforth encompassed by any reference to auser's account.

For example, an owner of the vehicle would have the right and privilegenot only to access infotainment media but also to access and controlcritical and non- or less critical vehicle tasks, functions, andoperations. Because he is entitled to the highest level of rights andprivileges, his or her authentication requirements may be more demandingthan another vehicle occupant not having such rights and privileges. Achild of the vehicle owner on the other hand would have a veryrestricted or no right to access and control vehicle tasks, functions,and operations (except for climate control, seat, and/or windowsettings) and restricted rights to access infotainment media. As notedabove, a child filter could be configured by the vehicle owner toprevent the child from accessing age-restricted media.

A guest of the vehicle owner having no corresponding account would beprovided with a default account having default and restricted rights andprivileges to access vehicle and infotainment tasks, functions, andoperations, and settings and configurations, which could be expandedbased on input from the owner. This could be done in response to a queryby the vehicle control system 204 that the vehicle occupant is notrecognized (or authenticated). The vehicle control system 204 couldprovide the owner with multiple default accounts, one for an adult withdriving privileges, one for an adult without driving privileges, and onefor a child, and request the owner select the appropriate defaultaccount for the occupant. An identifier of the occupant and optionallyauthentication credentials would be inputted by the owner, and thevehicle control system 204 could store image processing information ofthe occupant's facial or other image, biometric information, and/oroccupant weight for purposes of authentication. The owner could define,in an account created or modified by the owner, the rights andprivileges of the person associated with the account.

An operation of the vehicle control system 204 is shown in FIG. 27.

In step 2700, the vehicle control system 204 detects a stimulus, such asa driver prompt, presence of an occupant, and the like. As noted above,the presence of an occupant can be sensed by seat weight sensors, imageprocessing analysis, motion detection, proximity of a key fob, and/orbiometric information.

In decision diamond 2704, the vehicle control system 204 determineswhether or not each of the vehicle occupants has been authenticatedsuccessfully. Authentication can be performed by any suitable techniqueand using any suitable input, such as by one or more of receiving andvalidating user credentials, sensing an occupant's weight in a seat(with the weight being different from weight ranges predefined for eachknown occupant), image processing performed on the facialcharacteristics of the various vehicle occupants (and comparing thesensed facial characteristics against those for known occupants),biometrics (such as a fingerprint image of the occupant sensed by theoccupant touching a touchscreen display, retinal scan, heart rhythm asreceived by conductive elements on a vehicle component such as thesteering wheel or gear shift) (which are compared against correspondingstored biometrics for known occupants), and the like. An unauthenticatedoccupant could be recognized by sensing an occupant's weight in a seat(with the weight being different from weight ranges predefined for eachknown occupant), image processing performed on the facialcharacteristics of the various vehicle occupants (with the sensed facialcharacteristics failing to match stored facial characteristics for knownoccupants), unrecognized biometrics (which do not correspond tobiometrics for known occupants), and the like.

Authentication using image processing applied to video images ofoccupants in the vehicle can be performed by any suitable technique. Inone technique, facial recognition occurs in two stages, namely facedetection and recognition. The face detection stage attempts to obtainan acceptable image from the video stream of the vehicle occupants touse in the face recognition stage. The face recognition process uses theimage obtained from the detection stage and compares it with a databaseof known faces. When the facial image obtained from the detection stagematches a known stored facial image, authentication is successful. Whenthe facial image obtained from the detection stage fails to match aknown stored facial image, authentication is unsuccessful. As noted,image processing can be augmented by other security mechanisms forhigher level privileges, such as authentication by user credentials(e.g., pattern lock, PIN, or other password).

When the user is authenticated successfully, the vehicle control system204, in step 2708, retrieves the corresponding account for thesuccessfully authenticated user.

In step 2712, the vehicle control system 204 next determines the areaand/or zone (e.g., seat position) occupied by the authenticated user,such as by using any of the techniques discussed herein, includingwithout limitation image processing information of the variousoccupants, sensed seat weight, user input, location coordinates receivedfrom a portable computational device, such as a cell phone, tabletcomputer, or personal digital assistant associated with the user, andthe like. The vehicle control system 204 may also determine an operatingstate of the vehicle, e.g., in motion, parked, in gear, in neutral, andthe like.

In step 2716, based on location (e.g., seat position) of thecorresponding authenticated user and/or the operating state of thevehicle, the vehicle control system 204 enables eligible rights,privileges, settings and configurations set forth in the correspondingaccount and disables ineligible right or privileges or alters settingsand configurations.

When the user is not authenticated successfully, the vehicle controlsystem 204, in step 2720, creates an account for the unauthenticateduser as set forth above. As noted, the account can be a default account.

Another application of the vehicle control system 204 for authenticationby facial recognition is shown in FIGS. 28-29.

In step 2800, the vehicle control system 204 detects a stimulus ortrigger event.

In step 2804, the vehicle control system 204 provides, via the device oruser interface 212, 248, user interface (s)/input interface(s) 324and/or I/O module 312, the user with a face detection screen, such asthat shown in FIG. 29. As shown in FIG. 29, the face detection screen2900 is a dashed outline 2904 of a human face having eye holes 2908 aand b to enable the user to align his or her face with the screen for ahigher quality video image of the user's face. This screen 2900 promptsthe user to align his or her face such that the facial recognitioncamera can obtain a good image. The screen can show the video feed fromthe facial recognition camera with the dashed outline as an overlay. Thedashed outline is intended to assist users situate his or her imageproperly in the camera's field of view. An instruction line 2912 canappear at the top of the screen 2900.

When an acceptable facial image is not obtained so that facialrecognition cannot be performed, the vehicle control system 204 proceeds2803 to a manual sign-in step (discussed below) and provides the userwith a face recognition failure notification dialog over the screen 2900of the device or user interface 212, 248, user interface (s)/inputinterface(s) 324 and/or I/O module 312 in step 2812. If a proper facialimage is obtained, the vehicle control system 204, in step 2816,searches through a repository of stored facial images to find a matchand, during the mapping, provides the user with a recognition progressindicator modal on the screen 2900.

When recognition is not successful or no match is found, the vehiclecontrol system 204 proceeds to step 2812 and the manual sign-in stepdiscussed below.

When recognition is successful and a match is found, the vehicle controlsystem 204 proceeds to step 2820 and applies the personal settings ofthe user, such as any or all of the settings referenced above. Asettings application progress modal can be displayed over the displayedscreen.

In step 2812, the vehicle control system 204 provides the user with amanual sign-in screen (not shown) requesting input of the user'scredentials. The manual sign-in screen, for example, can include fieldsfor user identifier and password and options to sign in or continue as aguest.

When the credentials are not received within a time out period or areincorrect or at the request of the user in step 2812, the vehiclecontrol system 204 can create 2828 a guest or default account for theuser as discussed above and applies default settings.

When the credentials are received and successfully authenticated, thevehicle control system 204 in step 2820 applies the personal settings ofthe user.

The vehicle control system 204, after steps 2820, 2824, or 2828 proceedsto step 2832 and provides a home screen page, such as home page 3000,configured in accordance with the applicable settings.

Configuration of Haptic Feedback and Visual Preferences in Vehicle UserInterfaces

The profile data 252 can include, for each occupant in a correspondinguser profile, physical impairment information, such as informationregarding a disability. The physical impairments include visionimpairments (e.g., low vision, blindness, night and color blindness, andlight sensitivity), hearing impairments (such as hearing loss,hard-of-hearing, and deafness), dexterity and mobility impairments (suchas caused by arthritis, cerebral palsy, multiple sclerosis, loss of limbor digit, spinal cord injury, and repetitive stress injury), andlanguage and/or communication impairments (such as aphasia, delayedspeech, dyslexia, and other conditions resulting in difficultiesremembering, solving problems, and/or perceiving sensory information).

System data 208 can include rules to implement by the vehicle controlsystem 204 an accessibility or assistive technology. This can includereconfiguring, for example, the driver's device or user interface 212,248, user interface (s)/input interface(s) 324 and/or I/O module 312.Once the user having the impairment is located in the vehicle orcorrelated with a particular seat position and/or device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312, the accessibility or assistive technology can be applied tothe corresponding device or user interface 212, 248, user interface(s)/input interface(s) 324 and/or I/O module 312. The type ofaccessibility or assistive technology employed can depend not only onthe type and capabilities of the device or user interface 212, 248, userinterface (s)/input interface(s) 324 and/or I/O module 312 but also onthe seat position of the impaired user. Specifically, when the impaireduser is a driver of the vehicle, he or she may receive differentaccessibility or assistive technology compared to when he or she is anon-driving vehicle occupant or passenger.

The type of assistance provided by the vehicle control system 204depends on the particular impairment and/or disability involved. Forexample, if the vehicle control system 204 were to determine that theuser has a particular impairment and/or disability, the vehicle controlsystem 204 can recommend and/or implement automatically other feature ordevice settings and/or accessible technology that may provide improvedaccess for the user. By way of illustration, information, commands,warnings, and requests provided by way of the driver's device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 to users with vision impairments can be one or more of theuse of screen magnification, high contrast (e.g., between text andbackground colors such as white text on a black background, large fontsize and/or icon size (e.g., without changing screen resolution), colorchanges on the screen, a screen reader (or other text-to-speechprogram), speech recognition software (such as to operate the computerand/or software), enablement of a read mode, keyboard web pagenavigation, and the like. Information, commands, warnings, and requestsprovided by way of the driver's device or user interface 212, 248, userinterface (s)/input interface(s) 324 and/or I/O module 312 to users witha hearing impairment can be one or more of the use of text or visualalternatives for sounds, high volume levels, changed computer sounds,sign language interpretation or translation (e.g., by image processingand acquisition based on visual images captured by one or more camerasensors), a text phone application, and the like. Information, commands,warnings, and requests provided by way of the driver's device or userinterface 212, 248, user interface (s)/input interface(s) 324 and/or I/Omodule 312 to users with a dexterity and/or mobility impairment can beone or more of the use of particular mouse settings (e.g., mouse buttonconfiguration and timing (such as double-click speed), to make the mousepointer more visible, and to alter the scroll speed of the mouse wheelor how quickly the mouse pointer responds to movements of the mouse), anincreased size of a mouse-selectable screen element to provide a largertarget, mouse keys to move the mouse pointer, sticky keys, toggle keys,filter keys, keyboard shortcuts, access keys, keyboard settings, anon-screen keyboard, speech recognition software (such as to dictate intoalmost any application (e.g., the user can dictate documents and email,surf the web, and control selected vehicle tasks, functions, andoperations by voice command)), disablement of the automatic arrangementof windows when the mouse cursor is moved to the edge of the screen,enablement of activate a window by hovering over it with the mousecursor, keyboard web page navigation, a disability assistive keyboard(such as an alternative keyboard) displayed on the screen, a keyboardfilter, and the like. Information, commands, warnings, and requestsprovided by way of the driver's device or user interface 212, 248, userinterface (s)/input interface(s) 324 and/or I/O module 312 to users witha language and/or communication impairment can be one or more of the useof sticky keys, toggle keys, filter keys, enablement of removebackground images, disablement of all unnecessary animations, longperiod for notification dialog boxes to stay open, a keyboard filter,speech recognition software, enablement of a read mode, a screen reader,keyboard web page navigation, and a speech synthesizer, and the like.Information, commands, warnings, and requests provided by way of thedriver's device or user interface 212, 248, user interface (s)/inputinterface(s) 324 and/or I/O module 312 to users with a learningimpairment can be one or more of the use of a word prediction program, areading tool, a learning disability program, a speech synthesizer, andspeech recognition programs.

For users with an impairment, an assistive technology can use hapticfeedback to provide information to a user. Haptic technology, orhaptics, is a tactile feedback technology which takes advantage of thesense of touch by applying forces, vibrations, or motions to the user.Haptic feedback commonly uses the sense of touch in a user interface toprovide information to an end user. The user interface can be any devicewith which a body part of the user is in contact and through whichhaptic feedback can be transmitted. Examples include a steering wheel,tactile electronic display, seat, seat belt, foot pedal, gear shift,center or rear center console, arm rest, other contact surface, and thelike. In one configuration, the assistive technology is a system whereat least two actuators are positioned beneath a user interface toprovide vibratory feedback when a user makes contact with the unit. Oneactuator can induce a feedback vibration while one or more otheractuator creates a second vibration to suppress the first frompropagating to unwanted regions of the interface, thereby “localizing”the haptic experience. To minimize driver's attention away from the roador for a visually impaired occupant, tactile (or haptic or aural)feedback can be used to help a user identify which button/icon they aretouching or pressing, without drawing their visual attention away fromthe road. It can also be used, for the hearing impaired, haptic feedbackcan be used to identify external sounds, such as sirens of an emergencyvehicle, and/or a vehicle horn and/or information about a vehicle task,function or operation, such as an engine-related warning beingactivated, vehicle speed, vehicle gear currently engaged, and the like.Each type of information to be provided by haptic feedback to the usercan have a correspondingly different haptic feedback response to enablethe user to distinguish between types of information. For example, apolice siren can have a different haptic feedback than an ambulancesiren, both of which can have a different haptic feedback from anengine-related warning.

The external sound can be detected by one or more sound sensorspositioned interiorly and/or exteriorly to the vehicle. Each sensorgenerates an analog or digital representation of the sound detected overa selected frequency range. The vehicle control system uses templatematching to associate the profile of the sound detected with acorresponding matching profile of type of sound. In other words, thesound profile is the template and the sensed sound profile of a policesiren is matched to the template sound profile.

Sensed sound template matching can be used to generate an alert or soundin a different frequency range to a user. All or part of the sensedsound profile can be frequency shifted to provide a corresponding outputsound profile covering a different frequency range. The matching type ofsound can have a unique corresponding output sound profile. The outputsound profile can be played to the vehicle occupants over the soundsystem of the vehicle. The output sound profile may be suited to auser's particular frequency and/or hearing disability such that theoutput sound profile contains a set of frequencies that the user canhear. The sound may even adjust an audible signal presented to a user(e.g., statically, dynamically, and/or combinations thereof) to providea differently shaped or phase-shifted sound profile. The sound profileover certain frequency ranges can be exaggerated in magnitude and/or thesound profile over certain frequency ranges can be decreased inmagnitude or eliminated altogether. The output sound profile is playedover the vehicle's sound system in temporal proximity to the detectionof the corresponding external sound profile to alarm the occupant. Inone configuration, the output sound profile is played over the spatiallydispersed speakers in the passenger compartment with sound delays (orphase shifts) and/or magnitude levels at each speaker simulating thesound delays and/or magnitude levels of the various portions of thesound sensed by the various sound detectors positioned inside and/oroutside of the vehicle. This can indicate to the user spatially wherethe origin or source of the sound is located relative to the vehicle.

Alternative to or in addition to playing the output sound profile,visual signals and/or alerts to a user (e.g., flashing lights,increasing intensity associated with a visual signal, animated icons,etc.) can be provided visually to the user. The color, brightness,duration, and/or intensity of the light emitted and/or appearance of theanimated icon can vary by the matching type of sound profile such thateach type of sound profile has a unique set of visual signals and/oralerts to the user.

The general interfaces of a vehicle, including but not limited to, atleast one of the infotainment system, interfaces, graphical userinterfaces, and the like, can be configured to display color-blindfriendly colors so that the interface is meaningful and usable for acolor-blind user. Colors, contrast, brightness, etc. may be configuredto provide an optimum user experience based on the type ofcolor-blindness.

The vehicle control system can adjust or modify settings on manualcontrols to account for a user impairment or medical condition, age,physical condition or characteristics, and/or driving history. Thisinformation can be recorded in a corresponding user profile, obtainedover the Internet from a remote source (such as driving history from alaw enforcement agency), and/or sensed by observing the user's behaviorover time. For instance, the user may not respond quickly to a vehiclesensed obstacle in the path of the vehicle, may move, shake or jitterthe steering wheel slightly during vehicle operation. The user responsetime, pedal displacement of the user, force applied to a pedal by theuser, steering wheel displacement during straight-line driving, and thelike can be monitored by the vehicle control system and the monitoredbehavior analyzed and stored in the corresponding user profile. Analysiscan by matching the observed behavior against various templates. Theclosest template is associated with a corresponding set of configurationrules regarding what settings to use for manual controls of the vehicle.The abilities can be based on driving or responsiveness tests and/ordriver profiles maintained by a law enforcement or driver regulatingagency.

Based on impairment, medical condition, age, and/or abilities, forexample, the steering wheel, pedals, and/or other systems can beadjusted for play and/or responsiveness. For example, an individual whosuffers from one or more of Parkinsons, old age, shaking, etc. mayrequire more “play” in the steering wheel such that any shaking and/orsmall movements of the individual do not adversely affect the steeringsensitivity of the vehicle. Upon detecting the user impairment, thevehicle control system may alter the characteristics of the steeringwheel, for example, by reducing the sensitivity associated withmovement. In one case, the sensitivity may be changed by modifying theelectrical output in response to receiving a certain mechanical angularmovement of the steering wheel. For instance, an angular movement of 10degrees at the steering wheel may be the minimum default angularmovement to cause the wheels on a vehicle to begin to turn. Upondetecting a user's disability, this minimum default angular movement maybe increased to 30 degrees, as an example. Therefore, small movements(e.g., under 30 degrees) will not affect the steering. The changes to beimplemented are typically based on rule sets in the system data 208which map a set of user-related descriptors to recommended or requiredchanges. The descriptors typically describe one or more of userimpairment, medical condition, age, and/or abilities.

As can be appreciated, the sensitivity associated with a steering wheeland/or other manual vehicle control systems may be increased based on auser's abilities. Using the example provided above, an angular movementof 10 degrees at the steering wheel may be the minimum default angularmovement to cause the wheels on a vehicle to begin to turn. Upondetecting a user's ability (e.g., quick reactions, steady hands, pastdriving history, past vehicle history, etc.) this minimum defaultangular movement may be decreased to 5 degrees, as an example.Therefore, smaller movements (e.g., of 5 degrees applied at the wheel)will cause the vehicle to begin turning (similar to racing vehiclesand/or high-end cars, etc.).

In other examples, (brake, emergency brake, accelerator and/or clutch)pedal movement range can be adjusted; that is, the vehicle controlsystem can automatically adjust one or more of pedal stroke length,sensitivity, etc., based at least partially on user profile data andabilities.

The adjustment based on user profile and abilities can be extended toadjust settings and configurations of automated vehicle responsesystems. A collision avoidance system is an automobile safety systemdesigned to reduce the severity of an accident. Also known as precrashsystem, forward collision warning system or collision mitigating system,it uses radar and sometimes laser and camera sensors to detect animminent crash. Once the detection is done, these systems either providea warning to the driver when there is an imminent collision or takeaction autonomously without any driver input (by braking or steering orboth). In one approach, the collision avoidance system works in multiplephases. In a first phase, the collision avoidance system provideswarning of an impending accident, while the hazard warning lights areactivated, the side windows and sunroof are closed and the front seatbelts are tensioned. In a second phase, the warning is followed by lightbraking, strong enough to win the driver's attention. In a third phase,the collision avoidance system initiates autonomous partial braking. Ina fourth phase, the collision avoidance system decelerates the carfollowed by automatic deceleration at full braking power, roughly half asecond before projected impact. In another approach, the collisionavoidance system provides a warning to the driver through a Heads UpDisplay that visually resembles brake lamps. If the driver does notreact, the system pre-charges the brakes and increases the brake assistsensitivity to maximize driver braking performance. In another approach,the collision avoidance system comprises radar and camera-based crashimminent braking in which radar technology detects a possible crashthreat and alerts the driver. If the driver does not appear to reactquickly enough or does not react at all, the system intervenes to applythe brakes in an effort to avoid the crash. In another approach, thecollision avoidance system has three warning stages. In the firstwarning stage, the collision avoidance system includes audible andvisual warnings to brake. If ignored, the collision avoidance system inthe second stage tugs on the shoulder portion of the seat belt two tothree times as an additional tactile warning to the driver to takeaction. In a third stage, the collision avoidance system predicts that acollision is unavoidable and includes full seat belt slack takeup formore effective seat belt protection and automatic application of thebrakes to lessen the severity of the predicted crash. In anotherapproach, the collision avoidance system highlights pedestrians in frontof the vehicle at night by alerting the driver with an audible chime andvisually displaying them via a Heads Up Display. In another approach,the collision avoidance system uses electronic stability control sensorsto measure steering angle, vehicle yaw and lateral acceleration of thevehicle and brake assist (BAS) sensors to detect emergency braking, Thecollision avoidance system can tighten the seat belts, adjust seatpositions including rear seats (if installed), raise folded rearheadrests (if installed) and close the sunroof and windows if it detectsa possible collision (including rollover). The collision avoidancesystem can use radar to monitor the traffic situation ahead and provideautomatic partial braking if the driver does not react to the warningsand the system detects a severe danger of an accident. The disclosurecan be applied to other automated response systems besides collisionavoidance systems.

The vehicle can adjust the settings of the automotive response systems,such as a collision avoidance system, to reflect a driver's uniqueabilities and/or impairments. The settings for instance can be forinstance the time at which a warning of a potential collision isprovided to the driver, the duration of the driver response or reactiontime interval from a warning of a collision is provided to the driverand the initiation of automated braking, the braking force ordeceleration of automated braking, and the time over which automatedbraking occurs. For example, a driver with particularly quick responsescan have less fault tolerant triggers than a driver with slow responses;that is, the collision avoidance system for the former driver willtrigger automated braking later than the collision avoidance system forthe latter driver.

An operation of the vehicle control system will be discussed withreference to FIG. 31.

In step 3100, the vehicle control system senses a stimulus, such asignition of the vehicle, the vehicle being placed in gear, a dooropening or closing to permit a person to enter or exit the vehicle,activation of a graphical user interface, and the like.

In step 3104, the vehicle control system determines an identity of eachoccupant and, based on the occupant's user profile, whether or not theoccupant has an impairment. The occupant may be identified by anysuitable technique, including authentication, electronic addressinformation of a portable communication device associated with the user,image recognition, seat sensor feedback (e.g., weight of occupant), seatand lumbar settings selected by the occupant, and the like.

When the occupant has an impairment, the vehicle control systemdetermines, in step 3108, occupant seating and/or interface location.The interface can be, for example, a graphical user interface, steeringwheel, brake, clutch, or accelerator pedal, gear shift, or othercommunication interface by which the occupant is provided or providesinformation to the vehicle control system.

In step 3112, the vehicle control system configures the vehiclecommunication interface based on the type and/or severity of theoccupant impairment(s), seating position of the occupant, and/or type ofinterface.

In step 3116, the vehicle control system selects a next occupant of thevehicle and returns to decision diamond 3104.

An operation of the vehicle control system will be discussed withreference to FIG. 32.

In step 3200, the vehicle control system senses a stimulus, such asignition of the vehicle, the vehicle being placed in gear, a dooropening or closing to permit a person to enter or exit the vehicle,activation of a graphical user interface, and the like.

In step 3204, the vehicle control system determines an identity of eachoccupant, retrieves the corresponding user profile and relevant systemdata. The occupant may be identified by any suitable technique,including authentication, electronic address information of a portablecommunication device associated with the user, image recognition, seatsensor feedback (e.g., weight of occupant), seat and lumbar settingsselected by the occupant, and the like.

In decision diamond 3208, the vehicle control system, based on theoccupant's user profile and/or relevant system data, determines whetheror not the occupant has an ability that deviates sufficiently from anormal range for the subject vehicle communication interface and/orautomated vehicle response system. The normal range is defined for eachtype of activity and for each type of interface and/or automated controlsystem. As will be appreciated, different types of activities, differenttypes of interfaces, and/or different types of automated control systemshave differing normal ranges.

When the occupant has an activity that deviates sufficiently from anormal range, the vehicle control system retrieves and applies rulesets, in step 3212, to determine what settings of the vehiclecommunication interface and/or automated vehicle response system requirealteration.

In step 3216, the vehicle control system configures the vehiclecommunication interface and/or automated vehicle response system basedon the rule set application.

The vehicle control system then returns to step 3200.

The exemplary systems and methods of this disclosure have been describedin relation to configurable vehicle center or rear center consoles andassociated devices. However, to avoid unnecessarily obscuring thepresent disclosure, the preceding description omits a number of knownstructures and devices. This omission is not to be construed as alimitation of the scopes of the claims. Specific details are set forthto provide an understanding of the present disclosure. It should howeverbe appreciated that the present disclosure may be practiced in a varietyof ways beyond the specific detail set forth herein.

Furthermore, while the exemplary aspects, embodiments, options, and/orconfigurations illustrated herein show the various components of thesystem collocated, certain components of the system can be locatedremotely, at distant portions of a distributed network, such as a LANand/or the Internet, or within a dedicated system. Thus, it should beappreciated, that the components of the system can be combined in to oneor more devices, such as a Personal Computer (PC), laptop, netbook,smart phone, Personal Digital Assistant (PDA), tablet, etc., orcollocated on a particular node of a distributed network, such as ananalog and/or digital telecommunications network, a packet-switchnetwork, or a circuit-switched network. It will be appreciated from thepreceding description, and for reasons of computational efficiency, thatthe components of the system can be arranged at any location within adistributed network of components without affecting the operation of thesystem. For example, the various components can be located in a switchsuch as a PBX and media server, gateway, in one or more communicationsdevices, at one or more users' premises, or some combination thereof.Similarly, one or more functional portions of the system could bedistributed between a telecommunications device(s) and an associatedcomputing device.

Furthermore, it should be appreciated that the various links connectingthe elements can be wired or wireless links, or any combination thereof,or any other known or later developed element(s) that is capable ofsupplying and/or communicating data to and from the connected elements.These wired or wireless links can also be secure links and may becapable of communicating encrypted information. Transmission media usedas links, for example, can be any suitable carrier for electricalsignals, including coaxial cables, copper wire and fiber optics, and maytake the form of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

Also, while the flowcharts have been discussed and illustrated inrelation to a particular sequence of events, it should be appreciatedthat changes, additions, and omissions to this sequence can occurwithout materially affecting the operation of the disclosed embodiments,configuration, and aspects.

A number of variations and modifications of the disclosure can be used.It would be possible to provide for some features of the disclosurewithout providing others.

It should be appreciated that the various processing modules (e.g.,processors, vehicle systems, vehicle subsystems, modules, etc.), forexample, can perform, monitor, and/or control critical and non-criticaltasks, functions, and operations, such as interaction with and/ormonitoring and/or control of critical and non-critical on board sensorsand vehicle operations (e.g., engine, transmission, throttle, brakepower assist/brake lock-up, electronic suspension, traction andstability control, parallel parking assistance, occupant protectionsystems, power steering assistance, self-diagnostics, event datarecorders, steer-by-wire and/or brake-by-wire operations,vehicle-to-vehicle interactions, vehicle-to-infrastructure interactions,partial and/or full automation, telematics, navigation/SPS, multimediasystems, audio systems, rear seat entertainment systems, game center orrear center consoles, tuners (SDR), heads-up display, night vision, lanedeparture warning, adaptive cruise control, adaptive headlights,collision warning, blind spot sensors, park/reverse assistance, tirepressure monitoring, traffic signal recognition, vehicle tracking (e.g.,LoJack™), dashboard/instrument cluster, lights, seats, climate control,voice recognition, remote keyless entry, security alarm systems, andwiper/window control). Processing modules can be enclosed in an advancedEMI-shielded enclosure containing multiple expansion modules. Processingmodules can have a “black box” or flight data recorder technology,containing an event (or driving history) recorder (containingoperational information collected from vehicle on board sensors andprovided by nearby or roadside signal transmitters), a crash survivablememory unit, an integrated controller and circuitry board, and networkinterfaces.

Critical system controller(s) can control, monitor, and/or operatecritical systems. Critical systems may include one or more of (dependingon the particular vehicle) monitoring, controlling, operating the ECU,TCU, door settings, window settings, blind spot monitor, monitoring,controlling, operating the safety equipment (e.g., airbag deploymentcontrol unit, collision sensor, nearby object sensing system, seat beltcontrol unit, sensors for setting the seat belt, etc.), monitoringand/or controlling certain critical sensors such as the power sourcecontroller and energy output sensor, engine temperature, oil pressuresensing, hydraulic pressure sensors, sensors for headlight and otherlights (e.g., emergency light, brake light, parking light, fog light,interior or passenger compartment light, and/or tail light state (on oroff)), vehicle control system sensors, wireless network sensor (e.g.,Wi-Fi and/or Bluetooth sensors, etc.), cellular data sensor, and/orsteering/torque sensor, controlling the operation of the engine (e.g.,ignition, etc.), head light control unit, power steering, display panel,switch state control unit, power control unit, and/or brake controlunit, and/or issuing alerts to a user and/or remote monitoring entity ofpotential problems with a vehicle operation.

Non-critical system controller(s) can control, monitor, and/or operatenon-critical systems. Non-critical systems may include one or more of(depending on the particular vehicle) monitoring, controlling, operatinga non-critical system, emissions control, seating system controller andsensor, infotainment/entertainment system, monitoring certainnon-critical sensors such as ambient (outdoor) weather readings (e.g.,temperature, precipitation, wind speed, and the like), odometer readingsensor, trip mileage reading sensor, road condition sensors (e.g., wet,icy, etc.), radar transmitter/receiver output, brake wear sensor, oxygensensor, ambient lighting sensor, vision system sensor, ranging sensor,parking sensor, heating, venting, and air conditioning (HVAC) system andsensor, water sensor, air-fuel ratio meter, hall effect sensor,microphone, radio frequency (RF) sensor, and/or infrared (IR) sensor.

It is an aspect of the present disclosure that one or more of thenon-critical components and/or systems provided herein may becomecritical components and/or systems, and/or vice versa, depending on acontext associated with the vehicle.

Optionally, the systems and methods of this disclosure can beimplemented in conjunction with a special purpose computer, a programmedmicroprocessor or microcontroller and peripheral integrated circuitelement(s), an ASIC or other integrated circuit, a digital signalprocessor, a hard-wired electronic or logic circuit such as discreteelement circuit, a programmable logic device or gate array such as PLD,PLA, FPGA, PAL, special purpose computer, any comparable means, or thelike. In general, any device(s) or means capable of implementing themethodology illustrated herein can be used to implement the variousaspects of this disclosure. Exemplary hardware that can be used for thedisclosed embodiments, configurations and aspects includes computers,handheld devices, telephones (e.g., cellular, Internet enabled, digital,analog, hybrids, and others), and other hardware known in the art. Someof these devices include processors (e.g., a single or multiplemicroprocessors), memory, nonvolatile storage, input devices, and outputdevices. Furthermore, alternative software implementations including,but not limited to, distributed processing or component/objectdistributed processing, parallel processing, or virtual machineprocessing can also be constructed to implement the methods describedherein.

In yet another embodiment, the disclosed methods may be readilyimplemented in conjunction with software using object or object-orientedsoftware development environments that provide portable source code thatcan be used on a variety of computer or workstation platforms.Alternatively, the disclosed system may be implemented partially orfully in hardware using standard logic circuits or VLSI design. Whethersoftware or hardware is used to implement the systems in accordance withthis disclosure is dependent on the speed and/or efficiency requirementsof the system, the particular function, and the particular software orhardware systems or microprocessor or microcomputer systems beingutilized.

In yet another embodiment, the disclosed methods may be partiallyimplemented in software that can be stored on a storage medium, executedon programmed general-purpose computer with the cooperation of acontroller and memory, a special purpose computer, a microprocessor, orthe like. In these instances, the systems and methods of this disclosurecan be implemented as program embedded on personal computer such as anapplet, JAVA® or CGI script, as a resource residing on a server orcomputer workstation, as a routine embedded in a dedicated measurementsystem, system component, or the like. The system can also beimplemented by physically incorporating the system and/or method into asoftware and/or hardware system.

Although the present disclosure describes components and functionsimplemented in the aspects, embodiments, and/or configurations withreference to particular standards and protocols, the aspects,embodiments, and/or configurations are not limited to such standards andprotocols. Other similar standards and protocols not mentioned hereinare in existence and are considered to be included in the presentdisclosure. Moreover, the standards and protocols mentioned herein andother similar standards and protocols not mentioned herein areperiodically superseded by faster or more effective equivalents havingessentially the same functions. Such replacement standards and protocolshaving the same functions are considered equivalents included in thepresent disclosure.

The present disclosure, in various aspects, embodiments, and/orconfigurations, includes components, methods, processes, systems and/orapparatus substantially as depicted and described herein, includingvarious aspects, embodiments, configurations embodiments,subcombinations, and/or subsets thereof. Those of skill in the art willunderstand how to make and use the disclosed aspects, embodiments,and/or configurations after understanding the present disclosure. Thepresent disclosure, in various aspects, embodiments, and/orconfigurations, includes providing devices and processes in the absenceof items not depicted and/or described herein or in various aspects,embodiments, and/or configurations hereof, including in the absence ofsuch items as may have been used in previous devices or processes, e.g.,for improving performance, achieving ease and\or reducing cost ofimplementation.

The foregoing discussion has been presented for purposes of illustrationand description. The foregoing is not intended to limit the disclosureto the form or forms disclosed herein. In the foregoing DetailedDescription for example, various features of the disclosure are groupedtogether in one or more aspects, embodiments, and/or configurations forthe purpose of streamlining the disclosure. The features of the aspects,embodiments, and/or configurations of the disclosure may be combined inalternate aspects, embodiments, and/or configurations other than thosediscussed above. This method of disclosure is not to be interpreted asreflecting an intention that the claims require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive aspects lie in less than all features of a singleforegoing disclosed aspect, embodiment, and/or configuration. Thus, thefollowing claims are hereby incorporated into this Detailed Description,with each claim standing on its own as a separate preferred embodimentof the disclosure.

Moreover, though the description has included description of one or moreaspects, embodiments, and/or configurations and certain variations andmodifications, other variations, combinations, and modifications arewithin the scope of the disclosure, e.g., as may be within the skill andknowledge of those in the art, after understanding the presentdisclosure. It is intended to obtain rights which include alternativeaspects, embodiments, and/or configurations to the extent permitted,including alternate, interchangeable and/or equivalent structures,functions, ranges or steps to those claimed, whether or not suchalternate, interchangeable and/or equivalent structures, functions,ranges or steps are disclosed herein, and without intending to publiclydedicate any patentable subject matter.

1. A media controller subsystem comprising: a microprocessor executabledistributed network control server operable to access selected contenton a public network external to a vehicle comprising the mediacontroller subsystem, the distributed network control server having atleast one of an assigned Internet Protocol address and global unicastaddress; a microprocessor executable media server operable to receiverequests for content from a vehicle occupant and provide requestedcontent to a portable computational device associated with the vehicleoccupant, the media server having a contactable electronic address on alocal area network maintained by the vehicle; microprocessor readablememory to store content; and a microprocessor executable virtual networkconsole operable to provide the computational device with remote accessto the media server.
 2. The media controller subsystem of claim 15,wherein the distributed network control server, media server, andvirtual network console are on a common media processing board mountedon the vehicle and wherein the portable computational device is discretefrom, remote from, and in wireless communication with the mediaprocessing board.
 3. The media controller subsystem of claim 16, whereinthe virtual network console operates in accordance with the Remote FrameBuffer protocol on top of the TCP/IP suite of protocols, thereby causingthe remote computational device to appear to a computer mounted in thevehicle as if the remote computational device is part of the on boardvehicle control system comprising the computer.
 4. The media controllerof claim 17, wherein the vehicle occupant, through the remotecomputational device, can control one or more of the following mediapresentation features of a screen and sound system mounted on thevehicle: volume, contrast, resolution, and channel selection.
 5. Amethod, comprising: determining, by a microprocessor executable mediaserver, at least one of an identity of a vehicle occupant requestingmedia content, an identity of a portable computational device associatedwith the vehicle occupant, and a spatial location of the vehicleoccupant and/or remote computational device; based on the at least oneof the identity of the vehicle occupant requesting media content, theidentity of a portable computational device associated with the vehicleoccupant, and the spatial location of the vehicle occupant and/or remotecomputational device, applying, by the microprocessor executable mediaserver, at least one of a filter and restriction to the requested mediacontent to form filtered and/or permitted media content to be providedto the portable computational device; and providing, by a microprocessorexecutable media server, the filtered and/or permitted media content tothe portable computational device.
 6. The method of claim 5, wherein theportable computational device is discrete from, remote from, and inwireless communication with the media processing board, wherein the atleast one of a filter and restriction is applied to a media request ofthe vehicle occupant before the requested media content is accessed andwherein the at least one of a filter and restriction is one or more ofan age-related content filter and/or restriction, a vehicle occupantseating location filter and/or restriction, and a privacy filter and/orrestriction.
 7. The method of claim 6, wherein the at least one of afilter and restriction bans a type of content requested, bans a sourceof the content, redirects the request to a different source of thecontent, and/or limits the vehicle occupant to content from an approvedsource.
 8. The method of claim 5, wherein the portable computationaldevice is discrete from, remote from, and in wireless communication withthe media processing board, wherein the at least one of a filter andrestriction is applied after the requested media content is accessed andwherein the at least one of a filter and restriction is one or more ofan age-related content filter and/or restriction, a vehicle occupantseating location filter and/or restriction, and a privacy filter and/orrestriction.
 9. The method of claim 1, wherein a menu displayed to eachoccupant enables access to media content and wherein the at least one ofa filter and restriction determines a content and/or configuration ofthe menu presented to each occupant.
 10. The method of claim 1, whereinapplication of the at least one of a filter and restriction is based onan electronic address of the portable computational device on a networkof the vehicle.
 11. A vehicle, comprising: a microprocessor executablemedia server operable to: determine, at least one of an identity of avehicle occupant requesting media content, an identity of a portablecomputational device associated with the vehicle occupant, and a spatiallocation of the vehicle occupant and/or remote computational device;based on the at least one of the identity of the vehicle occupantrequesting media content, the identity of a portable computationaldevice associated with the vehicle occupant, and the spatial location ofthe vehicle occupant and/or remote computational device, apply at leastone of a filter and restriction to the requested media content to formfiltered and/or permitted media content to be provided to the portablecomputational device; and provide the filtered and/or permitted mediacontent to the portable computational device.
 12. The vehicle of claim11, wherein the portable computational device is discrete from, remotefrom, and in wireless communication with the media processing board,wherein the at least one of a filter and restriction is applied to amedia request of the vehicle occupant before the requested media contentis accessed and wherein the at least one of a filter and restriction isone or more of an age-related content filter and/or restriction, avehicle occupant seating location filter and/or restriction, and aprivacy filter and/or restriction.
 13. The vehicle of claim 12, whereinthe at least one of a filter and restriction bans a type of contentrequested, bans a source of the content, redirects the request to adifferent source of the content, and/or limits the vehicle occupant tocontent from an approved source.
 14. The vehicle of claim 11, whereinthe portable computational device is discrete from, remote from, and inwireless communication with the media processing board, wherein the atleast one of a filter and restriction is applied after the requestedmedia content is accessed and wherein the at least one of a filter andrestriction is one or more of an age-related content filter and/orrestriction, a vehicle occupant seating location filter and/orrestriction, and a privacy filter and/or restriction.
 15. The vehicle ofclaim 11, wherein a menu displayed to each occupant enables access tomedia content and wherein the at least one of a filter and restrictiondetermines a content and/or configuration of the menu presented to eachoccupant.
 16. The vehicle of claim 11, wherein application of the atleast one of a filter and restriction is based on an electronic addressof the portable computational device on a network of the vehicle. 17.(canceled)
 18. (canceled)
 19. (canceled)
 20. (canceled)
 21. (canceled)22. (canceled)